Porównywanie dat w postaci łańcuchów w JavaScript
Załóżmy, że mamy dwie daty w następującym tekście formacie:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
W takim przypadku można wykonać porównanie tych dat i dowiedzieć się, która z tych dat jest większa:
console.log(date1 > date2); // wypisze true
W jaki sposób odbywa się porównanie tych dat? Chodzi o to, że nasze daty reprezentują łańcuchy i JavaScript porównuje je jako łańcuchy. To znaczy, że najpierw porównuje pierwsze znaki dwóch dat: jeśli są takie same, to JavaScript porównuje drugie znaki, i tak dalej, aż nie znajdzie różnicy. Dzięki temu, że w naszym formacie daty najpierw znajduje się rok, potem miesiąc, a potem dzień, możliwe jest takie porównanie.
Chodzi o to, że jeśli cyfra pierwszego roku okaże się większa niż cyfra drugiego roku, to znaczy już nie ma znaczenia, co tam jest z miesiącami i dniami - pierwszy rok jest na pewno większy. Jeśli lata się pokrywają, to większa będzie ta data, która ma większy miesiąc. A jeśli i miesiące się pokrywają, to większa będzie ta data, która ma większy dzień. No, a jeśli i dni są takie same, to i daty są równe.
Ważne jest również, aby daty były w jednym formacie. W naszym przypadku separatorami części dat są myślniki. To, oczywiście, nie jest konieczne. Na przykład, można postawić kropki:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Albo całkowicie usunąć separatory:
let date1 = '20201201';
let date2 = '20191201';
Najważniejsze, aby porównanie było poprawne, umieszczenie musi być następujące: najpierw rok, potem miesiąc, potem dzień.
Napisz kod, który porówna dwie podane poniżej daty i wypisze komunikat o tym, która z nich jest większa:
let date1 = '2020-11-30';
let date2 = '2020-12-01';