Ժավսկրիպտում ամսաթվերի տողային համեմատում
Ենթադրենք, մենք ունենք երկու ամսաթիվ հետևյալ տեքստային ֆորմատով.
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Այս դեպքում կարելի է կատարել այդ ամսաթվերի համեմատում և պարզել, թե դրանցից որն է ավելի մեծ.
console.log(date1 > date2); // կարտածի true
Ինչպե՞ս է կատարվում այդ ամսաթվերի համեմատումը: Բանն այն է, որ մեր ամսաթվերը ներկայացնում են տողեր, և Ժավսկրիպտը դրանք համեմատում է որպես տողեր: Այսինքն՝ այն նախ համեմատում է երկու ամսաթվերի առաջին նիշերը. եթե դրանք նույնն են, ապա Ժավսկրիպտը համեմատում է երկրորդ նիշերը, և այդպես շարունակ, մինչև գտնի տարբերություն: Շնորհիվ այն բանի, որ մեր ֆորմատում ամսաթիվը նախ տեղադրված է տարին, ապա ամիսը, և ապա օրը, հնարավոր է նման համեմատում:
Բանն այն է, որ եթե առաջին տարվա թվանշանը պարզվում է ավելի մեծ, քան երկրորդ տարվա թվանշանը, ապա արդեն նշանակություն չունի, թե ինչ կա ամիսների և օրերի հետ - առաջին տարին միանշանակ ավելի մեծ է: Եթե տարիները համընկնում են, ապա ավելի մեծ կլինի այն ամսաթիվը, որի ամիսն ավելի մեծ է: Իսկ եթե ամիսներն էլ են համընկնում, ապա ավելի մեծ կլինի այն ամսաթիվը, որի օրը ավելի մեծ է: Դե, իսկ եթե օրերն էլ նույնն են, ապա ամսաթվերը հավասար են:
Կարևոր է նաև, որ ամսաթվերը լինեն նույն ֆորմատով: Մեր դեպքում ամսաթվի մասերի բաժանարարներն են դեշերը: Սա, իհարկե, պարտադիր չէ: Օրինակ, կարելի է դնել կետեր.
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';