jquery - 2011年10月29日至2011年10月31日期间出现奇怪错误,计算夜晚数错误

标签 jquery datepicker

我使用两个日期选择器来获取到达和离开日期,计算天数和夜晚数,一切都工作得很好,除了一件事:如果我的开始日期是 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/

相关文章:

javascript - 如何将前导 "0"添加到日期字符串的月/日?

jquery - 对背景和边框应用相同的随机颜色变化

javascript - CSS3 onclick 旋转和缩放

jquery - 使用 jQuery 使整个 Div 可点击

javascript - 有条件地将选项传递给 jquery 函数

c# - DatePicker 数据绑定(bind)将默认值设置为 1/1/0001 WPF c#

jquery - 如何使我的 JQuery Masonry 图像 float 到页面顶部?

javascript - 选择第二个日期。推特 Bootstrap

reactjs - Material 用户界面 : How to use DatePickerDialog outside of DatePicker?

javascript - 只有少数 jquery datepickers 的自定义 css?