计算范围选择器中的天数javascript

我知道之前已经问过这个问题,但我找不到任何接近我想做的事情。 我正在使用jQuery Datepicker http://keith-wood.name/datepick.html并使用带有2个日历的范围。 在我的应用程序中,我有一项服务,我收取1天的价格。 我想要做的是为最终用户提供一个日期范围,以选择他们想要购买的天数并向他们显示总数。 为了让我开始,我只想知道如何计算在该范围内选择的天数。

这是我的代码:

 
$('#range2Picker').datepick({ date1 = new Date(date1); date2 = new Date(date2); rangeSelect: true, monthsToShow: 2, changeMonth: false, minDate: +3, onClose: function(date1, date2) { var timediff = date2 - date1; alert('Number of days are: ' + timediff); } });

涉及Math.ceil的答案成为夏令时(夏令时)周围问题的牺牲品。 例如,在美国:

 Math.ceil((new Date("November 4, 2013").getTime() - new Date("November 2, 2013").getTime()) / (1000 * 3600 * 24)); //=> 3 

Math.floor会在Spring中Math.floor同样的问题:

 Math.floor((new Date("March 11, 2013").getTime() - new Date("March 9, 2013").getTime()) / (1000 * 3600 * 24)); // 1 

更好的是Math.round:

 var days = Math.round( (1*date2 - 1*date1) / 86400000, 0); 

它为您提供毫克差异,将它们转换为天数

 var timeDiff = Math.abs(date2.getTime() - date1.getTime()); var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); alert(diffDays)​;