Compararea șirurilor de date în JavaScript
Să presupunem că avem două date în următorul format text:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
În acest caz, putem compara aceste date și să aflăm care dintre ele este mai mare:
console.log(date1 > date2); // va afișa true
Cum se realizează compararea acestor date? Adevărul este că datele noastre sunt șiruri de caractere și JavaScript le compară ca atare. Adică, el compară mai întâi primele caractere ale celor două date: dacă acestea sunt identice, atunci JavaScript compara caracterele secundare, și tot așa, până când găsește o diferență. Datorită faptului că în formatul nostru data conține mai întâi anul, apoi luna, și apoi ziua, este posibilă o astfel de comparare.
Ideea este că dacă prima cifră a primului an se dovedește a fi mai mare decât cifra primului an al celui de-al doilea, atunci deja nu mai contează ce se întâmplă cu lunile și zilele - primul an este cu siguranță mai mare. Dacă anii coincid, atunci data cu luna mai mare va fi cea mai mare. Și dacă și lunile coincid, atunci data cu ziua mai mare va fi cea mai mare. Ei bine, iar dacă și zilele sunt aceleași, atunci datele sunt egale.
De asemenea, este important ca datele să fie în același format. În cazul nostru, separatorii părților datei sunt crătimi. Acest lucru, desigur, nu este obligatoriu. De exemplu, puteți folosi puncte:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Sau puteți elimina cu totul separatorii:
let date1 = '20201201';
let date2 = '20191201';
Principalul lucru, pentru ca compararea să fie corectă, este ca ordinea să fie următoarea: mai întâi anul, apoi luna, apoi ziua.
Scrieți un cod care va compara cele două date prezentate mai jos și va afișa un mesaj despre care dintre ele este mai mare:
let date1 = '2020-11-30';
let date2 = '2020-12-01';