JavaScript:
Comparando duas datas
How to:
// Criar duas datas
let data1 = new Date('2023-05-15T00:00:00');
let data2 = new Date('2023-05-20T00:00:00');
// Comparar datas (data1 é antes de data2?)
console.log(data1 < data2); // Saída: true
// Comparar datas (data1 é depois de data2?)
console.log(data1 > data2); // Saída: false
// São exatamente iguais? (mesmo momento no tempo)
console.log(data1.getTime() === data2.getTime()); // Saída: false
Deep Dive
Comparar datas em JavaScript tem sido um tópico importante desde o princípio do desenvolvimento web. Historicamente, bibliotecas como Moment.js eram a solução pra muitos, mas com novas especificações do ECMAScript e melhorias nos browsers, muitos desses recursos são embutidos. Date
é um objeto built-in que representa uma única data e hora. Podemos comparar dois objetos Date
convertendo-os em timestamps usando getTime()
, que retorna o valor numérico correspondente ao tempo daquela data desde 1 de janeiro de 1970 UTC. Esta abordagem evita falsos negativos de comparações diretas, que podem acontecer devido a diferenças nos milissegundos.
Alternativas modernas incluem a nova API Temporal proposta para uma melhor manipulação e formatação de datas em JavaScript, tratando de muitas limitações do objeto Date
.
Para detalhes de implementação, é crucial entender o funcionamento do timezone que pode afetar comparações quando não manuseamos devidamente.