Heim  >  Artikel  >  Backend-Entwicklung  >  Wie fügt man in PHP korrekt einen Tag zu einem Datum hinzu und vermeidet Rollover-Probleme?

Wie fügt man in PHP korrekt einen Tag zu einem Datum hinzu und vermeidet Rollover-Probleme?

Barbara Streisand
Barbara StreisandOriginal
2024-11-20 18:33:16332Durchsuche

How to Correctly Add a Day to a Date in PHP and Avoid Rollover Issues?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn