Comparação de strings de datas em JavaScript
Suponha que temos duas datas no seguinte formato de texto:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Nesse caso, podemos comparar essas datas e descobrir qual delas é maior:
console.log(date1 > date2); // exibirá true
Como essa comparação de datas funciona? O fato é que nossas datas são strings e o JavaScript as compara como strings. Ou seja, ele primeiro compara os primeiros caracteres das duas datas: se forem iguais, o JavaScript compara os segundos caracteres, e assim por diante, até encontrar uma diferença. Graças ao fato de que, em nosso formato, o ano vem primeiro, depois o mês e depois o dia, essa comparação é possível.
O ponto é que se o dígito do primeiro ano for maior que o dígito do segundo ano, então não importa mais o que acontece com os meses e dias - o primeiro ano é definitivamente maior. Se os anos forem iguais, a data maior será aquela com o mês maior. E se os meses também forem iguais, a data maior será aquela com o dia maior. Bem, e se os dias também forem iguais, então as datas são iguais.
Também é importante que as datas estejam no mesmo formato. No nosso caso, os separadores das partes da data são hífens. Isto, é claro, não é obrigatório. Por exemplo, podemos usar pontos:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Ou até mesmo remover os separadores:
let date1 = '20201201';
let date2 = '20191201';
O mais importante, para que a comparação seja correta, é que a disposição seja a seguinte: primeiro o ano, depois o mês, depois o dia.
Escreva um código que compare as duas datas fornecidas abaixo e exiba uma mensagem sobre qual delas é maior:
let date1 = '2020-11-30';
let date2 = '2020-12-01';