【问题标题】:Javascript : How to calculate the difference between two dates? [duplicate]Javascript:如何计算两个日期之间的差异? [复制]
【发布时间】:2014-06-13 22:23:39
【问题描述】:

如何计算两个日期之间的差异,例如日期 1 是 28-04-2014,日期 2 是 30-04-2014 如何使用 javascript 找到差异。

【问题讨论】:

  • 你可以查看库moment.js,它有许多内置的日期操作,包括差异。
  • 使用 ISO 日期的众多优点之一是您可以轻松地比较它们 (2014-04-28
  • 我从前端的日期选择器中获取日期
  • 为什么要引用一个回答不佳的问题?

标签: javascript


【解决方案1】:

Vishwas 的回答实际上非常接近,尽管它被否决了。您需要将有效的日期格式传递给new Date() 构造函数。

var date1 = new Date("28-04-2014".split("-").reverse());
var date2 = new Date("30-04-2014".split("-").reverse());
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
console.log(diffDays, "number of days difference");
console.log(timeDiff, "in milliseconds");

Date 构造函数需要new Date(year, month, day, hour, minute etc etc..) 形式的日期,并且还需要数组。

由于您的日期格式为day-month-year 形式,我们将您的字符串拆分(通过-)并反转它以获得[year, month, day]

完整日期对象参考 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

【讨论】:

    【解决方案2】:

    如果您使用的是datepicker from jQuery UI(或者可能是其他任何日期选择器工具),您可以选择要接收的日期格式。在 jQuery UI 中,使用 $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" ); 获取 ISO 8601 日期,然后像这样比较它们:

    if ( dateOne < dateTwo ) ...
    

    通过使用标准化的日期格式,您还可以确定您将始终能够轻松地将其转换为您以后想要显示的任何格式。

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多