Сравнение на низове от дати в 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';