Poređenje datuma kao stringova u JavaScript-u
Pretpostavimo da imamo dva datuma u sledećem tekstualnom formatu:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
U ovom slučaju možemo izvršiti poređenje ovih datuma i saznati koji od njih je veći:
console.log(date1 > date2); // ispisaće true
Kako se vrši poređenje ovih datuma? Stvar je u tome što naši datumi predstavljaju stringove i JavaScript ih poredi kao stringove. To znači da prvo poredi prve karaktere dva datuma: ako su isti, onda JavaScript poredi druge karaktere, i tako dalje, dok ne pronađe razliku. Zahvaljujući tome što je u našem formatu datuma prvo postavljena godina, zatim mesec, a onda dan, i moguće je takvo poređenje.
Stvar je u tome da ako je cifra prve godine veća od cifre druge godine, onda već nije bitno šta je sa mesecima i danima - prva godina je definitivno veća. Ako se godine podudaraju, onda će biti veći onaj datum kod koga je veći mesec. A ako se i meseci podudaraju, onda će biti veći onaj datum kod koga je veći dan. Pa, a ako su i dani isti, onda su i datumi jednaki.
Takođe je važno da datumi budu u istom formatu. U našem slučaju separatorima delova datuma su crte. To, naravno, nije obavezno. Na primer, možete staviti tačke:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Ili u potpunosti ukloniti separatore:
let date1 = '20201201';
let date2 = '20191201';
Najvažnije je da bi poređenje bilo korektno, raspored mora biti sledeći: prvo godina, zatim mesec, pa dan.
Napišite kod koji će uporediti dva datuma prikazana ispod i ispisati poruku o tome, koji od njih je veći:
let date1 = '2020-11-30';
let date2 = '2020-12-01';