我有两个输入日期从日期选择器控件。我选择了开始日期2/2/2012和结束日期2/7/2012。我为此写了以下代码。
结果应该是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);
}
有人能告诉我怎样才能得到确切的差别吗?
如果你正在使用moment.js,你可以很容易地做到这一点。
var start = moment("2018-03-10", "YYYY-MM-DD");
var end = moment("2018-03-15", "YYYY-MM-DD");
//Difference in number of days
moment.duration(start.diff(end)).asDays();
//Difference in number of weeks
moment.duration(start.diff(end)).asWeeks();
如果你想找出给定日期和当前日期之间的天数差异(忽略时间),请确保从当前日期的moment对象中删除时间,如下所示
moment().startOf('day')
找出给定日期与当前日期在天数上的差异
var given = moment("2018-03-10", "YYYY-MM-DD");
var current = moment().startOf('day');
//Difference in number of days
moment.duration(given.diff(current)).asDays();