Strings met datums vergelijken in PHP
Stel dat we twee datums hebben in het volgende tekst formaat:
<?php
$date1 = '2020-12-01';
$date2 = '2019-12-01';
?>
In dat geval kunnen we deze datums vergelijken en erachter komen welke van deze datums groter is:
<?php
var_dump($date1 > $date2);
?>
Hoe werkt deze vergelijking van datums? Het zit zo, dat onze datums strings zijn en PHP vergelijkt ze als strings. Dat betekent dat het eerst de eerste karakters van de twee datums vergelijkt: als ze gelijk zijn, dan vergelijkt PHP de tweede karakters, en zo verder, totdat het een verschil vindt. Dankzij het feit dat in ons datumformaat eerst het jaar staat, dan de maand, en dan de dag, is zo'n vergelijking mogelijk.
Het is ook belangrijk dat de datums in hetzelfde formaat staan. In ons geval zijn de scheidingstekens van de datumonderdelen streepjes. Dit is uiteraard niet verplicht. We kunnen bijvoorbeeld punten gebruiken:
<?php
$date1 = '2020.12.01';
$date2 = '2019.12.01';
?>
Of zelfs de scheidingstekens weglaten:
<?php
$date1 = '20201201';
$date2 = '20191201';
?>
Het belangrijkste is dat voor een correcte vergelijking, de volgorde als volgt moet zijn: eerst het jaar, dan de maand, dan de dag.
Schrijf code die de twee hieronder gegeven datums vergelijkt en een bericht toont over welke van hen groter is:
$date1 = '2020-11-30';
$date2 = '2020-12-01';