我有两个来自Date Picker控件的输入日期。我已选择开始日期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);
}
有人能告诉我怎样才能得到精确的差异吗?
发布于 2018-03-18 09:50:09
如果你正在使用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();
发布于 2012-02-03 22:13:55
尝试:
//Difference in days
var diff = Math.floor(( start - end ) / 86400000);
alert(diff);
发布于 2019-07-25 20:11:03
这对我来说很有效:
const from = '2019-01-01';
const to = '2019-01-08';
Math.abs(
moment(from, 'YYYY-MM-DD')
.startOf('day')
.diff(moment(to, 'YYYY-MM-DD').startOf('day'), 'days')
) + 1
);
https://stackoverflow.com/questions/9129928
复制相似问题