2012-10-14 8 views
9

Ich möchte 1 Tag hinzufügen und dann (minus) 1 Sekunde von einer gegebenen Zeit subtrahieren.Subtrahiere eine Sekunde von einer gegebenen Zeit

ich getan habe:

$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; 

aber statt 2012-09-28 23:59:59 es gibt 2012-09-29 00:09:59

Was mache ich falsch?

+0

Problem bei Ihrem Datumsformat ist ein Teil „H: m: s“ ... Sie drucken „Stunde Monat Sekunden“ – miro

Antwort

14

Sie gehen immer und immer wieder, anstatt an den Punkt in Ihrem Code zu kommen. Hier ist meine Lösung mit DateTime Objekten:

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

var_dump($time); 

Oder, wenn Sie nur die letzte Sekunde des Tages brauchen, warum nicht einfach:

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

Da es unwahrscheinlich ist, dass die Anzahl der Sekunden/Minuten/Stunden ein Tag zum ändern.

2

Wenn ich Sie richtig verstehe, wollen Sie nur die letzte Sekunde in dem gegebenen Tag, richtig?

Wenn das der Fall ist, dann könnte man einfach haben:

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

Das ist ein Lösung. Aber es sollte funktionieren. – glarkou

Verwandte Themen