JavaScript:如何使用JavaScript计算两个date之间的天数
从Date Picker控件中取得两个inputdate。 我select了开始date2/2/2012和结束date2012年7月7日。 我已经写了下面的代码。
我应该得到6的结果,但我得到5。
function SetDays(invoker) { var start = $find('<%=StartWebDatePicker.ClientID%>').get_value(); var end = $find('<%=EndWebDatePicker.ClientID%>').get_value(); var oneDay=1000 * 60 * 60 * 24; var difference_ms = Math.abs(end.getTime() - start.getTime()) var diffValue = Math.round(difference_ms / oneDay); } 任何人都可以告诉我如何得到确切的区别?
http://momentjs.com/或https://date-fns.org/
从Moment文档:
 var a = moment([2007, 0, 29]); var b = moment([2007, 0, 28]); a.diff(b, 'days') // =1 
或者包括开始:
 a.diff(b, 'days')+1 // =2 
打败了时间戳和时区手动。
根据您的具体使用情况,您也可以
-  使用a/b.startOf('day')和/或a/b.endOf('day')强制diff在“ends”处包含或排除(如注释中的@kotpalbuild议的那样)。
-  将第三个参数设置为true以获得一个浮点数diff,然后根据需要可以使用Math.floor,Math.ceil或Math.round。
-  选项2也可以通过获得'seconds'而不是'days'然后除以24*60*60。
尝试:
 //Difference in days var diff = Math.floor(( start - end ) / 86400000); alert(diff);