如何在JavaScript中檢查日期是否指向過去的一天

給定一個JavaScript日期,如何檢查它是否引用了過去的一天?

我遇到了這個問題:我想檢查一個日期是否指的是過去一天,而不是另一個日期。

只是使用比較它們getTime()這還不夠,因為日期可能會有不同的時間。

我最終使用了這個功能:

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 }

我用setHours()確保我們同時比較兩個日期(00:00:00)。

這是具有隱式返回的相同功能,但不那麼blo腫

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

下面是一個簡單的示例,將昨天和今天進行比較:

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

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

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

免費下載我的JavaScript初學者手冊


更多js教程: