我使用两个日期选择器来获取到达和离开日期,计算天数和夜晚数,一切都工作得很好,除了一件事:如果我的开始日期是 2011 年 10 月 29 日,结束日期是 2011 年 10 月 31 日。 2011年jquery算3个晚上但只有2个晚上。只有十月,其他月份仍然工作正常,希望有人能帮助我找出我的错误在哪里:
var oneDay = 1000*60*60*24;
var difference = Math.ceil((arrivalDate.getTime() - departureDate.getTime()) / oneDay);
最佳答案
问题在于,欧洲的夏令时于 10 月 30 日结束(根据德国错误消息,您所在的地区是夏令时)。因此,日期之间通常有 24+24+24=72 小时,在本例中,日期之间有 24+24+24+1=73 小时。因此,您的代码计算出日期之间有 2.041666 天。然后,您的 Math.ceil
将其向上舍入为 3。
在这种情况下,最简单的解决方案可能只是将 Math.ceil
替换为 Math.round
。当 DST 结束时,您的 2.04166 天将四舍五入为 2 天。当 DST 开始时,您届时锻炼的 1.95834 天也将四舍五入为 2 天。
关于jquery - 2011年10月29日至2011年10月31日期间出现奇怪错误,计算夜晚数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499069/