2010-03-25 14 views
88

Vorrei aggiungere 24 ore al timestamp per ora. Come trovo il numero di timestamp di unix per 24 ore, quindi posso aggiungerlo al timestamp per ora?Come posso aggiungere 24 ore a un timestamp unix in php?

Vorrei anche sapere come aggiungere 48 ore o più giorni al timestamp corrente.

Come posso fare meglio a fare questo?

+0

"come aggiungere 48 ore o più giorni" - l'ora legale è un problema? – VolkerK

+1

Vorrei sottolineare la risposta di Álvaro G. Vicario. L'aggiunta di semplici 24 ore potrebbe non essere quello che vuoi in ogni caso. – Boldewyn

+1

Yepp, è per questo che volevo sapere se zeckdude è consapevole di dst e se è di qualche preoccupazione per lui. – VolkerK

risposta

242

Probabilmente si desidera di aggiungere un giorno, piuttosto che 24 ore . Non tutti i giorni hanno 24 ore a causa di (tra le altre circostanze) l'ora legale:

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

+1 per rivelare un caso di bordo oscuro (ish) –

+3

Il caso non è così oscuro, dal momento che tutti gli altri codici di domande precedenti si rompono la domenica successiva. +1 – Boldewyn

+0

Il mio codice pensava che Marzo avesse 32 giorni a causa di questo caso, quindi è consigliabile tenere a mente l'ora legale, a meno che non si operi esclusivamente in GMT. – nullability

16

Aggiungi 24 * 3600, che è il numero di secondi in 24 ore

57

Un Unix timestamp è semplicemente il numero di secondi dal gennaio la prima del 1970, in modo da aggiungere 24 ore per un timestamp Unix basta aggiungere il numero di secondi in 24 ore. (24 * 60 * 60)

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

24 * 60 * 60 = 86400 (potrebbe salvare qualcuno un paio di secondi) – Andrew

13

Unix timestamp è espresso in secondi, per cui è sufficiente aggiungere il corrispondente numero di secondi al timestamp:

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

è possibile utilizzare la classe DateTime così:

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

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

Aggiungi un P eriodo di D ay:

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

See DateInterval per maggiori dettagli.

+1

Solo per aggiungere, questo funziona solo su> = PHP 5.3 – tiltdown

Problemi correlati