Tag zum Datum hinzufügen: Rollover-Probleme lösen
In PHP ist das Hinzufügen eines Tages zu einem Datum ein üblicher Vorgang. Beim Hinzufügen von Daten gegen Ende eines Monats treten jedoch Probleme auf, da das Ergebnis möglicherweise nicht die erwartete Verlängerung widerspiegelt.
Originalcode und -ausgabe
Der bereitgestellte Der Code versucht, dem Datum „2009-09-30 20:24:00“ einen Tag hinzuzufügen. Leider gibt das Ergebnis das Datum „1970-01-01 17:33:29“ anstelle des erwarteten „2009-10-01 20:24:00“ zurück.
Lösung
Das Problem liegt darin, wie PHP mit der String-Darstellung des Datums umgeht. Anstatt strtotime zum Parsen der Zeichenfolge zu verwenden, besteht der richtige Ansatz darin, die Funktion date_create_from_format zu verwenden, um ein DateTime-Objekt zu generieren.
Verbesserter Code
<?php $stop_date = '2009-09-30 20:24:00'; $stop_date = date_create_from_format('Y-m-d H:i:s', $stop_date); echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s'); $stop_date->modify('+1 day'); echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s'); ?>
Für PHP 5.2.0
Für PHP-Versionen 5.2.0 und Später kann die folgende alternative Syntax verwendet werden:
<?php $stop_date = new DateTime('2009-09-30 20:24:00'); echo 'date before day adding: ' . $stop_date->format('Y-m-d H:i:s'); $stop_date->modify('+1 day'); echo 'date after adding 1 day: ' . $stop_date->format('Y-m-d H:i:s'); ?>
Diese Syntax initialisiert ein DateTime-Objekt direkt und bietet so einen objektorientierteren Ansatz.
Das obige ist der detaillierte Inhalt vonWie fügt man in PHP korrekt einen Tag zu einem Datum hinzu und vermeidet Rollover-Probleme?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!