給定一個 JavaScript 日期,如何檢查它是否參考過去的某一天?

我遇到了這個問題:我想要檢查一個日期是否在參考的日期之前。

僅僅使用 getTime() 進行比較是不夠的,因為日期可能有不同的時間。

我最終使用了這個函數:

const firstDateIsPastDayComparedToSecond = (firstDate, secondDate) => {
  if (firstDate.setHours(0,0,0,0) - secondDate.setHours(0,0,0,0) >= 0) { //第一個日期在未來,或者就是今天
    return false;
  }

  return true;
}

我使用 setHours() 來確保我們在同一個時間(00:00:00)比較兩個日期。

這是一個更簡潔、省略了內部返回部分的相同函數的版本:

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