Cómo verificar si una fecha se refiere a un día en el pasado en JavaScript

Dada una fecha de JavaScript, ¿cómo se comprueba si hace referencia a un día en el pasado?

Tuve este problema: quería verificar si una fecha se refería a un día anterior, en comparación con otra fecha.

Solo comparándolos usandogetTime()no fue suficiente, ya que las fechas podrían tener una hora diferente.

Terminé usando esta función:

const firstDateIsPastDayComparedToSecond = (firstDate, secondDate) => {
  if (firstDate.setHours(0,0,0,0) - secondDate.setHours(0,0,0,0) >= 0) { //first date is in future, or it is today
    return false
  }

return true }

yo suelosetHours()para asegurarnos de comparar 2 fechas al mismo tiempo (00:00:00).

Aquí está la misma función con el retorno implícito, menos hinchado

const firstDateIsPastDayComparedToSecond = (firstDate, secondDate) => firstDate.setHours(0,0,0,0) - secondDate.setHours(0,0,0,0) < 0

Y aquí está cómo usarlo con un ejemplo simple, comparando ayer con hoy:

const today = new Date()
const yesterday = new Date(today)

yesterday.setDate(yesterday.getDate() - 1)

firstDateIsPastDayComparedToSecond( yesterday, today) //true firstDateIsPastDayComparedToSecond( today, yesterday) //false


Más tutoriales de js: