2010-03-25 13 views
88

Me gustaría agregar 24 horas a la marca de tiempo por el momento. ¿Cómo puedo encontrar el número de marca de tiempo de Unix durante 24 horas para poder agregarlo a la marca de tiempo por ahora?¿Cómo agrego 24 horas a una marca de tiempo de Unix en php?

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

¿Cómo puedo hacer todo lo posible para hacer esto?

+0

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

+1

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

+1

Yepp, es por eso que quería saber si zeckdude es consciente de dst y si le preocupa un poco. – VolkerK

Respuesta

242

Es posible que desee añadir una día en lugar de las 24 horas . No todos los días tienen 24 horas debido a (entre otras circunstancias) horario de verano:

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

+1 para revelar un caso de borde oscuro (ish) –

+3

El caso no es tan oscuro, ya que el resto del código de preguntas anteriores se rompe el próximo domingo por la mañana. +1 – Boldewyn

+0

Mi código creía 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. – nullability

16

Agregar 24 * 3600, que es el número de segundos en 24 horas

57

Una marca de tiempo Unix es simplemente el número de segundos desde el primero de enero 1970, por lo que añadir las 24 horas a una marca de tiempo Unix simplemente añadimos el número de segundos en 24 horas. (24 * 60 * 60)

time() + 24*60*60; 
+20

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

13

marca de tiempo Unix es en cuestión de segundos, por lo que sólo tiene que añadir el correspondiente número de segundos a la marca de tiempo:

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

usted podría utilizar la clase DateTime así:

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

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

Añadir un P eriodo de D ay:

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

Ver DateInterval para más detalles.

+1

Solo para agregar, esto solo funciona en> = PHP 5.3 – tiltdown

Cuestiones relacionadas