Σύγκριση συμβολοσειρών με ημερομηνίες στην PHP
Ας υποθέσουμε ότι έχουμε δύο ημερομηνίες στην ακόλουθη μορφή κειμένου:
<?php
$date1 = '2020-12-01';
$date2 = '2019-12-01';
?>
Σε αυτήν την περίπτωση, μπορούμε να εκτελέσουμε σύγκριση αυτών των ημερομηνιών και να μάθουμε ποια από αυτές είναι μεγαλύτερη:
<?php
var_dump($date1 > $date2);
?>
Πώς ακριβώς γίνεται η σύγκριση αυτών των ημερομηνιών; Το γεγονός είναι ότι οι ημερομηνίες μας είναι συμβολοσειρές και η PHP τις συγκρίνει ως συμβολοσειρές. Δηλαδή, πρώτα συγκρίνει τους πρώτους χαρακτήρες των δύο ημερομηνιών: εάν είναι ίδιοι, τότε η PHP συγκρίνει τους δεύτερους χαρακτήρες, και ούτω καθεξής, μέχρι να βρει διαφορά. Χάρη στο γεγονός ότι στη μορφή μας οι ημερομηνίες έχουν πρώτα το έτος, μετά τον μήνα, και μετά την ημέρα, είναι δυνατή μια τέτοια σύγκριση.
Είναι επίσης σημαντικό οι ημερομηνίες να είναι στην ίδια μορφή. Στην περίπτωσή μας, τα διαχωριστικά των μερών της ημερομηνίας είναι παύλες. Αυτό, φυσικά, δεν είναι απαραίτητο. Για παράδειγμα, μπορούμε να βάλουμε τελείες:
<?php
$date1 = '2020.12.01';
$date2 = '2019.12.01';
?>
Ή ακόμα και να αφαιρέσουμε τα διαχωριστικά:
<?php
$date1 = '20201201';
$date2 = '20191201';
?>
Το κύριο πράγμα, για να είναι η σύγκριση σωστή, η τοποθέτηση πρέπει να είναι η ακόλουθη: πρώτα το έτος, μετά ο μήνας, μετά η ημέρα.
Γράψτε κώδικα που θα συγκρίνει τις δύο ημερομηνίες που δίνονται παρακάτω και θα εμφανίζει μήνυμα σχετικά με το ποια από αυτές είναι μεγαλύτερη:
$date1 = '2020-11-30';
$date2 = '2020-12-01';