首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何计算两个日期之间的天数

如何计算两个日期之间的天数
EN

Stack Overflow用户
提问于 2012-02-03 22:10:32
回答 6查看 356.8K关注 0票数 361

我有两个来自Date Picker控件的输入日期。我已选择开始日期2/2/2012和结束日期2/7/2012。为此,我编写了以下代码。

我应该得到6的结果,但我得到了5。

代码语言:javascript
复制
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);
}

有人能告诉我怎样才能得到精确的差异吗?

EN

回答 6

Stack Overflow用户

发布于 2018-03-18 09:50:09

如果你正在使用moment.js,你可以很容易地做到这一点。

代码语言:javascript
复制
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对象中移除时间,如下所示

代码语言:javascript
复制
moment().startOf('day')

查找给定日期与当前日期在天数上的差异

代码语言:javascript
复制
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();
票数 76
EN

Stack Overflow用户

发布于 2012-02-03 22:13:55

尝试:

代码语言:javascript
复制
//Difference in days

var diff =  Math.floor(( start - end ) / 86400000);
alert(diff);
票数 19
EN

Stack Overflow用户

发布于 2019-07-25 20:11:03

这对我来说很有效:

代码语言:javascript
复制
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
);

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9129928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档