¿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?

zeckdude
fuente
"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);
Álvaro González
fuente
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;
Yacoby
fuente
52
24 * 60 * 60 = 86400 (podría ahorrarle a alguien un par de segundos)
Andrew
20

Suma 24*3600cuál es el número de segundos en 24 horas

Soufiane Hassou
fuente
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);
reko_t
fuente
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.

SeanJA
fuente
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";
?>
Haritsinh Gohil
fuente
0
$time = date("H:i", strtotime($today . " +5 hours +30 minutes"));
//+5 hours +30 minutes     Time Zone +5:30 (Asia/Kolkata)
BISWAL DE SARADA PRASAD
fuente