我有这样一个问题:如何计算2个日期之间的天数?
特别是,我想根据入住日期和退房日期来计算一个人租房和睡觉所需的天数。
我看了不同的解决方案,考虑到所有与日期有关的问题(包括夏令时),给我的问题最少的是:从起始日期开始,我们增加一天,直到该日期代表结束日期之后的日期。
代码是这样的。
const numberOfNightsBetweenDates = (startDate, endDate) => {
const start = new Date(startDate) //clone
const end = new Date(endDate) //clone
let dayCount = 0
while (end > start) {
dayCount++
start.setDate(start.getDate() + 1)
}
return dayCount
}
我首先克隆我们得到的日期,因为日期是对象,我们得到对该对象的引用。这意味着在函数中使用setDate() ,也会影响到这个函数之外的变量--这不是我们所期待的事情
这就是了。
如果你想得到2个日期之间的天数(比如,今天到明天是2天),只需将while (end > start) 改为while (end >= start) 。这样就可以了。或者将dayCount 的起点增加到1 。