¿Cómo agrego 24 horas a una marca de tiempo de Unix en php?


119

Me gustaría agregar 24 horas a la marca de tiempo por ahora. ¿Cómo encuentro el número de marca de tiempo de Unix durante 24 horas para poder agregarlo a la marca de tiempo por ahora?

También me gustaría saber cómo agregar 48 horas o varios días a la marca de tiempo actual.

¿Cómo puedo hacerlo mejor?


"cómo agregar 48 horas o varios días": ¿el horario de verano es un problema?
VolkerK

1
Me gustaría señalar la respuesta de Álvaro G. Vicario. Agregar 24 horas simples puede que no sea lo que desea en todos los casos.
Boldewyn

1
Yepp, por eso quería saber si zeckdude conoce el dst y si le preocupa.
VolkerK

Respuestas:


301

Probablemente desee agregar un día en lugar de 24 horas. No todos los días tienen 24 horas debido (entre otras circunstancias) al horario de verano:

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

6
El caso no es tan oscuro, ya que todos los demás códigos de preguntas anteriores se rompen el próximo domingo por la mañana. +1
Boldewyn

Mi código pensaba que marzo tenía 32 días debido a este caso, por lo que es aconsejable tener en cuenta el horario de verano a menos que esté operando únicamente en GMT.
nulabilidad del

86

Una marca de tiempo de Unix es simplemente la cantidad de segundos desde el primer enero de 1970, por lo que para agregar 24 horas a una marca de tiempo de Unix, simplemente agregamos la cantidad de segundos en 24 horas. (24 * 60 * 60)

time() + 24*60*60;

52
24 * 60 * 60 = 86400 (podría ahorrarle a alguien un par de segundos)
Andrew


16

La marca de tiempo de Unix está en segundos, así que simplemente agregue el número correspondiente de segundos a la marca de tiempo:

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

14

También puede usar la clase DateTime :

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

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

Añadir un P eriodo de 1 D ay:

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

Consulte DateInterval para obtener más detalles.


0

Como ha dicho, si desea agregar 24 horas a la marca de tiempo por ahora, simplemente puede hacer:

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

El código anterior agregará 1 día o 24 horas a su marca de tiempo actual.

en lugar de +1 daypuede tomar lo que quiera , como dice el manual de php , strtotime puede analizar cualquier descripción textual de fecha y hora en inglés en una marca de tiempo de Unix .

Los ejemplos del manual son los siguientes:

<?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)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.