Javascript:如何计算两个日期之间的差异?

时间:2014-04-28 11:31:56

标签: javascript

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

2 个答案:

答案 0 :(得分:1)

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

if ( dateOne < dateTwo ) ...

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

答案 1 :(得分: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