Радкоўнае параўнанне дат на JavaScript
Няхай у нас ёсць дзве даты ў наступным тэкставым фармаце:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
У такім выпадку можна выканаць параўнанне гэтых дат і даведацца, якая з гэтых дат большая:
console.log(date1 > date2); // выведзе true
Якім чынам адбываецца параўнанне гэтых дат? Справа ў тым, што нашы даты ўяўляюць сабой радкі і JavaScript параўноўвае іх як радкі. Гэта значыць, ён спачатку параўноўвае першыя сімвалы двух дат: калі яны аднолькавыя, то JavaScript параўноўвае другія сімвалы, і так далей, пакуль не знайде адрозненні. Дзякуючы таму, што ў нашым фармаце даты спачатку размешчаны год, потым месяц, а потым дзень, і магчыма такое параўнанне.
Справа ў тым, што калі лічба першага года аказваецца большая за лічбу другога года, значыць ужо не мае значэння, што там з месяцамі і днямі - першы год дакладна большы. Калі ж гады супадаюць, то большай будзе тая дата, у якой большая месяц. А калі і месяцы супадаюць, то большай будзе тая дата, у якой большая дзень. Ну, а калі і дні аднолькавыя, то і даты роўныя.
Важна таксама, каб даты былі ў адным фармаце. У нашым выпадку падзяляльнікамі частак дат з'яўляюцца злучкі. Гэта, вядома ж, не абавязкова. Напрыклад, можна паставіць кропкі:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Ці наогул прыбраць падзяляльнікі:
let date1 = '20201201';
let date2 = '20191201';
Галоўнае, каб параўнанне было карэктным, размяшчэнне павінна быць наступным: спачатку год, потым месяц, потым дзень.
Напішыце код, які параўнае дзве прыведзеныя ніжэй даты і вывяде паведамленне аб тым, якая з іх большая:
let date1 = '2020-11-30';
let date2 = '2020-12-01';