Стрингово споредување на датуми во 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';