Confronto di date come stringhe in JavaScript
Supponiamo di avere due date nel seguente formato testuale:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
In questo caso è possibile confrontare queste date e scoprire quale delle due è maggiore:
console.log(date1 > date2); // restituirà true
In che modo avviene il confronto di queste date? Il fatto è che le nostre date sono stringhe e JavaScript le confronta come tali. Cioè, prima confronta i primi caratteri delle due date: se sono uguali, allora JavaScript confronta i secondi caratteri, e così via, finché non trova una differenza. Grazie al fatto che nel nostro formato la data ha prima l'anno, poi il mese e poi il giorno, un tale confronto è possibile.
Il punto è che se la cifra del primo anno risulta maggiore della cifra del secondo anno, allora non importa cosa succede con i mesi e i giorni - il primo anno è sicuramente maggiore. Se invece gli anni coincidono, sarà maggiore la data che ha il mese più grande. E se anche i mesi coincidono, sarà maggiore la data che ha il giorno più grande. Beh, e se anche i giorni sono uguali, allora le date sono uguali.
È importante anche che le date siano nello stesso formato. Nel nostro caso, i separatori delle parti della data sono trattini. Questo, ovviamente, non è obbligatorio. Ad esempio, si possono mettere dei punti:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
O addirittura rimuovere i separatori:
let date1 = '20201201';
let date2 = '20191201';
L'importante, affinché il confronto sia corretto, è che la disposizione sia la seguente: prima l'anno, poi il mese, poi il giorno.
Scrivi del codice che confronti le due date riportate di seguito e visualizzi un messaggio su quale delle due sia maggiore:
let date1 = '2020-11-30';
let date2 = '2020-12-01';