PHP:
Porównywanie dwóch dat
Jak to zrobić:
Porównajmy dwie daty w PHP z wykorzystaniem obiektu DateTime
:
<?php
$date1 = new DateTime("2021-03-15");
$date2 = new DateTime("2021-03-20");
if ($date1 < $date2) {
echo "Data 1 jest wcześniejsza niż Data 2";
} elseif ($date1 > $date2) {
echo "Data 1 jest późniejsza niż Data 2";
} else {
echo "Data 1 jest taka sama jak Data 2";
}
?>
Wynik działania:
Data 1 jest wcześniejsza niż Data 2
Deep Dive
Porównywanie dat w PHP stało się proste, gdy wprowadzono obiekty DateTime
w wersji 5.2.0. Zastąpiły one starsze funkcje, jak strtotime
czy array getdate
, które nadal są w użyciu, ale w nowych projektach preferowane są obiekty. DateTime
daje nie tylko czytelniejszy kod, ale też większą precyzję i elastyczność.
Alternatywy to m.in. strtotime
, który przekształca tekstowe reprezentacje daty na Unix timestamp, oraz operatory bezpośredniego porównania dla timestampów.
Przykład z strtotime
:
<?php
$timestamp1 = strtotime("2021-03-15");
$timestamp2 = strtotime("2021-03-20");
if ($timestamp1 < $timestamp2) {
echo "Data 1 jest wcześniejsza niż Data 2";
}
?>
Przy implementacji warto pamiętać o strefach czasowych - jeśli pracujemy na globalnych aplikacjach, różnice w czasie mogą mieć znaczenie. Do DateTime
można przekazać strefę czasową jako drugi argument konstruktora.