2012-10-14 14 views
9

Vorrei aggiungere 1 giorno e quindi sottrarre (meno) 1 secondo da un dato tempo.Sottrarre un secondo da un dato orario

ho fatto:

$fromDate = date("Y-m-d", strtotime("2012-09-28")).' 00:00:00'; 
$date = strtotime(date("y-m-d H:m:s", strtotime($fromDate)) . " +1 day") - 1; 
$toDate = date('Y-m-d H:m:s', $date); 
echo $toDate; 

ma invece di 2012-09-28 23:59:59 restituisce 2012-09-29 00:09:59

Che cosa sto facendo di sbagliato?

+0

problema è al vostro formato della data, parte "H: m: s" ... si stampa "mese secondi hour" – miro

risposta

14

Stai andando in tondo invece di arrivare al punto del tuo codice. Ecco la mia soluzione con DateTime oggetti:

$time = new DateTime("2012-09-28"); 
$time->modify("+1 day"); 
$time->modify("-1 second"); 

var_dump($time); 

Oppure, se avete solo bisogno l'ultimo secondo della giornata, perché non solo:

$time = "2012-09-28"; 
$time .= " 23:59:59"; 

quanto è improbabile che il numero di secondi/minuti/ore un giorno per cambiare.

2

Se ti capisco bene, vuoi solo l'ultimo secondo in un dato giorno, giusto?

Se questo è il caso, allora si può solo avere:

$theDate = "2012-09-28"; 
$fromDate = $theDate." 00:00:00"; 
$toDate = $theDate." 23:59:59"; 
+0

Questo è uno soluzione. Ma dovrebbe funzionare. – glarkou

Problemi correlati