Kuupäevade stringivõrdlus JavaScriptis
Oletame, et meil on kaks kuupäeva järgmises tekstivormingus:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Sellisel juhul saame neid kuupäevi võrrelda ja teada saada, milline neist kuupäevadest on suurem:
console.log(date1 > date2); // väljastab true
Kuidas toimub nende kuupäevade võrdlus? Asi on selles, et meie kuupäevad on stringid ja JavaScript võrdleb neid kui stringe. See tähendab, et see võrdleb kõigepealt esimesi sümboleid kahest kuupäevast: kui need on samad, siis JavaScript võrdleb teisi sümboleid, ja nii edasi, kuni leiab erinevuse. Tänu sellele, et meie kuupäeva vormingus on kõigepealt aasta, siis kuu ja siis päev, on selline võrdlus võimalik.
Asi on selles, et kui esimese aasta number osutub suuremaks kui teise aasta number, siis ei oma enam tähtsust, mis seal kuude ja päevadega on - esimene aasta on kindlasti suurem. Kui aastad langevad kokku, siis on suurem see kuupäev, mille kuu on suurem. Ja kui ka kuud langevad kokku, siis on suurem see kuupäev, mille päev on suurem. Noh, ja kui ka päevad on samad, siis on ka kuupäevad võrdsed.
Samuti on oluline, et kuupäevad oleksid samas vormingus. Meie puhul on kuupäevaosade eraldajateks kriipsud. See pole muidugi kohustuslik. Näiteks võib panna punktid:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Või eemaldada eraldajad üldse:
let date1 = '20201201';
let date2 = '20191201';
Peamine on, et võrdlus oleks korrektne, paigutus peab olema järgmine: kõigepealt aasta, siis kuu, siis päev.
Kirjutage kood, mis võrdleb ka allpool toodud kuupäeva ja väljastab sõnumi, milline neist on suurem:
let date1 = '2020-11-30';
let date2 = '2020-12-01';