Come aggiungo 24 ore a un timestamp unix in php?


119

Per ora vorrei aggiungere 24 ore al timestamp. Come faccio a trovare il numero di timestamp unix per 24 ore in modo da poterlo aggiungere al timestamp per adesso?

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

Come posso ottenere risultati migliori?


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

1
Vorrei segnalare la risposta di Álvaro G. Vicario. Aggiungere 24 ore semplici potrebbe non essere quello che vuoi in ogni caso.
Boldewyn

1
Sì, è per questo che volevo sapere se zeckdude è a conoscenza di dst e se lo preoccupa.
VolkerK

Risposte:


301

Probabilmente vorrai aggiungere un giorno anziché 24 ore. Non tutti i giorni hanno 24 ore a causa (tra le altre circostanze) dell'ora legale:

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

6
Il caso non è così oscuro, dal momento che tutto il resto del codice delle domande precedenti viene interrotto la domenica mattina successiva. +1
Boldewyn

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 tu non stia operando esclusivamente in GMT.
nullability

86

Un timestamp Unix è semplicemente il numero di secondi dal primo gennaio 1970, quindi per aggiungere 24 ore a un timestamp Unix aggiungiamo semplicemente il numero di secondi in 24 ore. (24 * 60 * 60)

time() + 24*60*60;

52
24 * 60 * 60 = 86400 (potrebbe far risparmiare a qualcuno un paio di secondi)
Andrew


16

Il timestamp di Unix è in secondi, quindi aggiungi semplicemente il numero di secondi corrispondente al timestamp:

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

14

Potresti anche usare la classe DateTime :

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

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

Aggiungi un P eriodo di 1 D ay:

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

Vedi DateInterval per maggiori dettagli.


0

Come hai detto, se vuoi aggiungere 24 ore al timestamp per adesso, puoi semplicemente fare:

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

Il codice sopra aggiungerà 1 giorno o 24 ore al timestamp corrente.

al posto di +1 daypuoi prendere quello che vuoi , come dice il manuale di php strtotime può analizzare qualsiasi descrizione datetime testuale in inglese in un timestamp Unix .

gli esempi dal manuale sono i seguenti:

<?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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.