Porovnávanie reťazcov s dátumami v JavaScripte
Predpokladajme, že máme dva dátumy v nasledovnom textovom formáte:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
V takom prípade môžeme vykonať porovnanie týchto dátumov a zistiť, ktorý z nich je väčší:
console.log(date1 > date2); // vypíše true
Ako prebieha porovnanie týchto dátumov? Ide o to, že naše dátumy predstavujú reťazce a JavaScript ich porovnáva ako reťazce. To znamená, že najprv porovnáva prvé znaky dvoch dátumov: ak sú rovnaké, potom JavaScript porovnáva druhé znaky, a tak ďalej, kým nenájde rozdiel. Vďaka tomu, že v našom formáte dátumu je najprv umiestnený rok, potom mesiac a potom deň, je takéto porovnanie možné.
Ide o to, že ak je číslica prvého roku väčšia ako číslica druhého roku, potom už nezáleží na tom, čo je s mesiacmi a dňami - prvý rok je určite väčší. Ak sa roky zhodujú, väčší bude ten dátum, ktorý má väčší mesiac. A ak sa zhodujú aj mesiace, väčší bude ten dátum, ktorý má väčší deň. No, a ak sú aj dni rovnaké, potom sú dátumy rovnaké.
Je tiež dôležité, aby dátumy boli v rovnakom formáte. V našom prípade sú oddeľovačmi častí dátumov pomlčky. To, samozrejme, nie je nevyhnutné. Napríklad, môžeme použiť bodky:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Alebo úplne odstrániť oddeľovače:
let date1 = '20201201';
let date2 = '20191201';
Hlavné je, aby bolo porovnanie korektné, umiestnenie musí byť nasledovné: najprv rok, potom mesiac, potom deň.
Napíšte kód, ktorý porovná dva dátumy uvedené nižšie a vypíše správu o tom, ktorý z nich je väčší:
let date1 = '2020-11-30';
let date2 = '2020-12-01';