Porovnávání řetězců s daty v JavaScriptu
Předpokládejme, že máme dvě data v následujém textovém formátu:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
V takovém případě můžeme provést porovnání těchto dat a zjistit, které z těchto dat je větší:
console.log(date1 > date2); // vypíše true
Jakým způsobem probíhá porovnávání těchto dat? Jde o to, že naše data představují řetězce a JavaScript je porovnává jako řetězce. To znamená, že nejprve porovnává první znaky dvou dat: pokud jsou stejné, pak JavaScript porovnává druhé znaky, a tak dále, dokud nenajde rozdíl. Díky tomu, že v našem formátu data jsou nejprve umístěn rok, potom měsíc a potom den, je takové porovnání možné.
Jde o to, že pokud je číslice prvního roku větší než číslice druhého roku, znamená to, že už nezáleží na tom, co je s měsíci a dny - první rok je určitě větší. Pokud se roky shodují, větší bude to datum, které má větší měsíc. A pokud se shodují i měsíce, pak větší bude to datum, které má větší den. No, a pokud jsou i dny stejné, pak jsou data stejná.
Je také důležité, aby data byla ve stejném formátu. V našem případě jsou oddělovači částí dat pomlčky. To samozřejmě není povinné. Například lze použít tečky:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Nebo oddělovače úplně odstranit:
let date1 = '20201201';
let date2 = '20191201';
Hlavní je, aby porovnání bylo korektní, umístění musí být následující: nejprve rok, potom měsíc, potom den.
Napište kód, který porovná dvě níže uvedená data a vypíše zprávu o tom, které z nich je větší:
let date1 = '2020-11-30';
let date2 = '2020-12-01';