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