Merkkijonojen vertailu päivämäärillä PHP:ssä
Oletetaan, että meillä on kaksi päivämäärää seuraavassa tekstimuodossa:
<?php
$date1 = '2020-12-01';
$date2 = '2019-12-01';
?>
Tässä tapauksessa voimme suorittaa näiden päivämäärien vertailun ja selvittää, kumpi päivämääristä on suurempi:
<?php
var_dump($date1 > $date2);
?>
Miten näiden päivämäärien vertailu tapahtuu? Asia on niin, että päivämäärämme ovat merkkijonoja ja PHP vertailee niitä merkkijonoina. Eli se vertailee ensin kahden päivämäärän ensimmäisiä merkkejä: jos ne ovat samat, PHP vertailee toisia merkkejä, ja niin edelleen, kunnes se löytää eron. Sen ansiosta, että päivämäärämuodossamme on ensin vuosi, sitten kuukausi ja sitten päivä, on tällainen vertailu mahdollista.
On myös tärkeää, että päivämäärät ovat samassa muodossa. Meidän tapauksessamme päivämäärien osien erottimina ovat viivat. Tämä ei tietenkään ole välttämätöntä. Esimerkiksi voidaan laittaa pisteet:
<?php
$date1 = '2020.12.01';
$date2 = '2019.12.01';
?>
Tai jopa poistaa erottimet:
<?php
$date1 = '20201201';
$date2 = '20191201';
?>
Tärkeintä on, että vertailu on oikea, sijoituksen tulee olla seuraava: ensin vuosi, sitten kuukausi, sitten päivä.
Kirjoita koodi, joka vertailee kahta alla esitettyä päivämäärää ja tulostaa viestin siitä, kumpi niistä on suurempi:
$date1 = '2020-11-30';
$date2 = '2020-12-01';