Dátumok sztring összehasonlítása JavaScriptben
Tegyük fel, hogy két dátumunk van a következő szöveges formátumban:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Ebben az esetben össze lehet hasonlítani ezeket a dátumokat, és megtudhatjuk, melyik a nagyobb:
console.log(date1 > date2); // kiírja true-t
Hogyan történik ezeknek a dátumoknak az összehasonlítása? Az a helyzet, hogy a dátumaink sztringeket jelentenek, és a JavaScript sztringként hasonlítja össze őket. Vagyis először összehasonlítja a két dátum első karaktereit: ha azok megegyeznek, akkor a JavaScript összehasonlítja a második karaktereket, és így tovább, amíg különbséget nem talál. Annak köszönhetően, hogy a dátumformátumunkban először az év található, majd a hónap, aztán a nap, lehetséges egy ilyen összehasonlítás.
Az a helyzet, hogy ha az első év számjegye nagyobb, mint a második év számjegye, akkor már nem is számít, hogy mi van a hónapokkal és napokkal - az első év biztosan nagyobb. Ha az évek egybeesnek, akkor az a dátum lesz nagyobb, amelyiknek nagyobb a hónapja. Ha pedig a hónapok is egybeesnek, akkor nagyobb lesz az a dátum, amelyiknek nagyobb a napja. Nos, ha a napok is megegyeznek, akkor a dátumok egyenlőek.
Az is fontos, hogy a dátumok ugyanabban a formátumban legyenek. Esetünkben a dátum részeinek elválasztói kötőjelek. Ez természetesen nem kötelező. Például lehetnek pontok is:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Vagy akár el is hagyhatjuk az elválasztókat:
let date1 = '20201201';
let date2 = '20191201';
A lényeg az, hogy az összehasonlítás korrekt legyen, a elrendezésnek a következőnek kell lennie: először év, majd hónap, aztán nap.
Írjon kódot, amely összehasonlítja az alábbi két dátumot, és üzenetben jelzi, melyik a nagyobb:
let date1 = '2020-11-30';
let date2 = '2020-12-01';