Sztringek dátumokkal való összehasonlítása PHP-ben
Tegyük fel, hogy két dátumunk van a következő szöveges formátumban:
<?php
$date1 = '2020-12-01';
$date2 = '2019-12-01';
?>
Ebben az esetben össze lehet hasonlítani ezeket a dátumokat, és megtudhatjuk, melyik nagyobb:
<?php
var_dump($date1 > $date2);
?>
Hogyan történik ezeknek a dátumoknak az összehasonlítása? Az a helyzet, hogy a dátumaink sztringek, és a PHP sztringként hasonlítja össze őket. Vagyis először összehasonlítja a két dátum első karaktereit: ha azok megegyeznek, akkor a PHP összehasonlítja a második karaktereket, és így tovább, amíg különbséget nem talál. Annak köszönhetően, hogy a dátumformátumunkban először az év található, majd a hónap, azután a nap, lehetséges egy ilyen összehasonlítás.
Az is fontos, hogy a dátumok ugyanabban a formátumban legyenek. Esetünkben a dátum részeinek elválasztói kötőjelek. Ez természetesen nem kötelező. Például lehetnek pontok is:
<?php
$date1 = '2020.12.01';
$date2 = '2019.12.01';
?>
Vagy akár el is hagyjuk az elválasztókat:
<?php
$date1 = '20201201';
$date2 = '20191201';
?>
A lényeg, hogy az összehasonlítás korrekt legyen, a elrendezésnek a következőnek kell lennie: először év, majd hónap, majd nap.
Írjon kódot, amely összehasonlítja az alábbi két dátumot, és üzenetben közli, melyik nagyobb:
$date1 = '2020-11-30';
$date2 = '2020-12-01';