PHP:
Vergleich von zwei Daten

How to:

(Wie geht das?) Angenommen, wir haben zwei Daten und wollen wissen, ob eines vor oder nach dem anderen liegt. Hier ein schnörkelloser PHP-Schnipsel:

<?php
$date1 = new DateTime("2023-01-01");
$date2 = new DateTime("2023-12-31");

if ($date1 < $date2) {
    echo "Datum1 liegt vor Datum2.";
} else {
    echo "Datum1 liegt nicht vor Datum2.";
}
?>

Ergebnis:

Datum1 liegt vor Datum2.

Wenn wir wissen möchten, wie viele Tage der Unterschied ist, dann sieht das so aus:

<?php
$diff = $date1->diff($date2);
echo $diff->days . " Tage Unterschied.";
?>

Ergebnis:

364 Tage Unterschied.

Deep Dive:

(Tiefer tauchen) Früher war der Datumvergleich in PHP ein Krampf. Man jonglierte mit strtotime() und anderen Funktionen. Seit PHP 5.2 haben wir das DateTime-Objekt, das vieles vereinfacht.

Alternativen? Klar, die gibt’s. Man kann die Unix Timestamps vergleichen, strtotime() nutzen oder externe Bibliotheken wie Carbon für PHP einsetzen, wenn es noch komfortabler sein soll.

Implementierungsdetails? Beim Vergleich mit <, > und == wird unter der Haube die Unix Timestamp genutzt. Also Vorsicht mit Zeitzonen! Die diff-Methode von DateTime gibt ein DateInterval zurück, das reichlich Infos wie die Anzahl der Tage bietet.

See Also:

(Siehe auch)