Comment vérifier si une date fait référence à un jour dans le passé dans JavaScript

Étant donné une date JavaScript, comment vérifier si elle fait référence à un jour dans le passé?

J'ai eu ce problème: je voulais vérifier si une date se référait à un jour passé, par rapport à une autre date.

Juste en les comparant en utilisantgetTime()n'était pas suffisant, car les dates pouvaient avoir une heure différente.

J'ai fini par utiliser cette fonction:

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 }

j'utilisesetHours()pour être sûr de comparer 2 dates en même temps (00:00:00).

Voici la même fonction avec le retour implicite, moins gonflé

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

Et voici comment l'utiliser avec un exemple simple, comparant hier à aujourd'hui:

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

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

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

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: