我遇到了這個問題:如何計算兩個日期之間的天數?

具體來說,我想要計算一個人租房並在其中入住的夜晚數量,根據入住日期和退房日期。

我查看了不同的解決方案,並找到了一個在考慮到日期的所有問題(包括夏令時間)後給我帶來最少問題的解決方案:從開始日期開始,我們一直添加一天,直到日期表示的日期在結束日期之後為止。

以下是程式碼:

const numberOfNightsBetweenDates = (startDate, endDate) => {
 const start = new Date(startDate) //複製日期對象
 const end = new Date(endDate) //複製日期對象
 let dayCount = 0

 while (end > start) {
  dayCount++
  start.setDate(start.getDate() + 1)
 }

 return dayCount
}

我首先複製了我們給定的日期,因為日期是對象,我們得到對該對象的引用。這意味著在函數中使用setDate()也會影響到函數外的變量,這是我們不希望看到的!

就這樣。

如果您只是想獲取兩個日期之間的天數(例如,從今天到明天是2天),只需將 while (end > start) 更改為 while (end >= start) 即可。這樣就可以了。或者將dayCount的起始點增加為1