Cómo comparar dos fechas iguales en JavaScript
El objeto Date
en JavaScript es bastante robusto para trabajar con fechas, te permite comparar si una fecha es mayor o menor que otra, pero al intentar comparar si es igual falla.
Veamos un ejemplo.
const dateA = new Date("6/01/2023")
const dateB = new Date("6/01/2022")
console.log(dateA > dateB) // true
console.log(dateA < dateB) // false
console.log(dateA === dateB) // false - aunque parezca correcto, no lo es.
Ves este código y piensas que está bien, pero resulta que la comparación de si las fechas son iguales está mal. Veamos otro ejemplo:
const dateA = new Date("6/01/2022")
const dateB = new Date("6/01/2022")
console.log(dateA === dateB) // false - aunque sean iguales
Las dos fechas son iguales, pero los objetos son diferentes y eso es lo que se está comparando, no las fechas sino los objetos.
Veamos un ejemplo de cómo comparar:
const dateA = new Date("6/01/2022").getTime()
const dateB = new Date("6/01/2022").getTime()
console.log(dateA === dateB) // true - ¡¡¡funciona!!!!
El método getTime()
El método getTime()
de JavaScript devuelve el número de milisegundos de la fecha desde la medianoche del 1 de enero de 1970, es decir, desde la "fecha" del "epoch".
const dateA = new Date("6/01/2022").getTime() // 1654063200000
const dateB = new Date("6/01/2022").getTime() // 1654063200000
console.log(dateA === dateB) // 1654063200000 === 1654063200000
Ent