【问题标题】:Javascript Days calculation between two days [duplicate]两天之间的Javascript天数计算[重复]
【发布时间】:2013-06-18 16:25:52
【问题描述】:
var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date(2013, 06, 30);
var secondDate = new Date(2013, 07, 01);
var diffDays = Math.round(Math.abs((secondDate.getTime() - firstDate.getTime()) / (oneDay)));

我运行上面的代码,答案应该是 1 天。但它给了我 2 天的时间。 你能帮帮我吗?

【问题讨论】:

    标签: javascript days


    【解决方案1】:

    这是因为月份在 JavaScript 中被 0 编入索引。所以你的第一个约会是在 7 月,第二个约会是在 8 月。

    您正在与一个有 31 天的月份进行比较,因此正确的差异是 2 天。

    当我在 JavaScript 中以这种方式输入日期时,我显式添加了偏移量,以便其他编码人员不会读错,这太容易出错了:

    var firstDate = new Date(2013, 06 - 1, 30); // -1 due to the months being 0-indexed in JavaScript
    var secondDate = new Date(2013, 07 - 1, 01);
    

    是的,我已经“修复”了我的代码...

    【讨论】:

    【解决方案2】:

    在 javascript 中,月份从 6 月 05 日起的 00-1 月开始

    var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
    var firstDate = new Date(2013, 05, 30);
    var secondDate = new Date(2013, 06, 01);
    var diffDays = (secondDate- firstDate)/oneDay;
    alert(diffDays);
    

    为避免混淆,您可以像下面这样使用

    var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
    var firstDate = new Date('JUNE 30,2013');
    var secondDate = new Date('JULY 01,2013');
    var diffDays = (secondDate- firstDate)/oneDay;
    alert(diffDays);
    

    【讨论】:

    • @Muhammad Suleman 如果您发现答案是正确的,请接受
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 2019-02-10
    • 1970-01-01
    相关资源
    最近更新 更多