Datų palyginimas kaip eilučių JavaScript
Tarkime, kad turime dvi datas tokiu tekstiniu formatu:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Tokiu atveju galima palyginti šias datas ir sužinoti, kuri iš jų yra didesnė:
console.log(date1 > date2); // išvestų true
Kaip vyksta šių datų palyginimas? Faktas yra tas, kad mūsų datos yra eilutės ir JavaScript jas lygina kaip eilutes. Tai reiškia, kad pirmiausia jis lygina pirmuosius simbolius iš dviejų datų: jei jie vienodi, tai JavaScript lygina antruosius simbolius, ir taip toliau, kol neranda skirtumo. Dėl to, kad mūsų formate datos pirmiausia yra metai, po to mėnuo, o po to diena, ir toks palyginimas yra įmanomas.
Faktas yra tas, kad jei pirmųjų metų skaitmuo yra didesnis už antųjų metų skaitmenį, tai jau nesvarbu, kas ten yra su mėnesiais ir dienomis - pirmieji metai tikrai yra didesni. Jei metai sutampa, tai didesnė bus ta data, kurios mėnuo yra didesnis. O jei ir mėnesiai sutampa, tai didesnė bus ta data, kurios diena yra didesnė. Na, o jei ir dienos yra vienodos, tai ir datos yra lygios.
Taip pat svarbu, kad datos būtų vienodi formatu. Mūsų atveju dalių skirtukai yra brūkšneliai. Tai, žinoma, nėra būtina. Pavyzdžiui, galima naudoti taškus:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Arba apskritai pašalinti skirtukus:
let date1 = '20201201';
let date2 = '20191201';
Svarbiausia, kad palyginimas būtų korektiškas, dėstymas turi būti toks: pirmiausia metai, po to mėnuo, po to diena.
Parašykite kodą, kuris palygins dvi žemiau pateiktas datas ir išves pranešimą apie tai, kuri iš jų yra didesnė:
let date1 = '2020-11-30';
let date2 = '2020-12-01';