給定一個 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