Comment ajouter 24 heures à un horodatage Unix en PHP?


119

Je voudrais ajouter 24 heures à l'horodatage pour le moment. Comment trouver le numéro d'horodatage Unix pendant 24 heures pour pouvoir l'ajouter à l'horodatage pour le moment?

Je voudrais également savoir comment ajouter 48 heures ou plusieurs jours à l'horodatage actuel.

Comment puis-je faire cela au mieux?


"Comment ajouter 48 heures ou plusieurs jours" - L'heure d'été est-elle un problème?
VolkerK

1
Je voudrais souligner la réponse d'Álvaro G. Vicario. L'ajout de 24 heures simples peut ne pas être ce que vous voulez dans tous les cas.
Boldewyn

1
Yepp, c'est pourquoi je voulais savoir si zeckdude est au courant de dst et si cela le préoccupe.
VolkerK

Réponses:


301

Vous voudrez probablement ajouter un jour plutôt que 24 heures. Tous les jours n'ont pas 24 heures en raison (entre autres) de l'heure d'été:

strtotime('+1 day', $timestamp);

6
L'affaire n'est pas si obscure, puisque tous les autres codes de questions précédentes sont interrompus dimanche matin prochain. +1
Boldewyn

Mon code pensait que mars avait 32 jours à cause de ce cas, il est donc sage de garder l'heure d'été à l'esprit sauf si vous opérez uniquement en GMT.
nullité

86

Un horodatage Unix est simplement le nombre de secondes depuis le premier janvier 1970, donc pour ajouter 24 heures à un horodatage Unix, nous ajoutons simplement le nombre de secondes en 24 heures. (24 * 60 * 60)

time() + 24*60*60;

52
24 * 60 * 60 = 86400 (peut sauver quelqu'un quelques secondes)
Andrew


16

L'horodatage Unix est en secondes, alors ajoutez simplement le nombre de secondes correspondant à l'horodatage:

$timeInFuture = time() + (60 * 60 * 24);

14

Vous pouvez également utiliser la classe DateTime :

$timestamp = mktime(15, 30, 00, 3, 28, 2015);

$d = new DateTime();
$d->setTimestamp($timestamp);

Ajouter un P ériode de 1 D ay:

$d->add(new DateInterval('P1D'));
echo $d->format('c');

Voir DateInterval pour plus de détails.


0

Comme vous l'avez dit, si vous souhaitez ajouter 24 heures à l'horodatage pour le moment, vous pouvez simplement faire:

 <?php echo strtotime('+1 day'); ?>

Le code ci-dessus ajoutera 1 jour ou 24 heures à votre horodatage actuel.

à la place de +1 dayvous, vous pouvez prendre tout ce que vous voulez , comme le dit le manuel php , strtotime peut analyser toute description textuelle en anglais datetime dans un horodatage Unix .

Les exemples du manuel sont les suivants:

<?php
     echo strtotime("now"), "\n";
     echo strtotime("10 September 2000"), "\n";
     echo strtotime("+1 day"), "\n";
     echo strtotime("+1 week"), "\n";
     echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
     echo strtotime("next Thursday"), "\n";
     echo strtotime("last Monday"), "\n";
?>

0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.