1

我正在寻找 JavaScript 中以下问题的最简洁的解决方案:

我想确定 JavaScript 中两个日期之间发生的天数。我不是在寻找以天为单位的日期差异,例如:

日期 1:2012 年 6 月 26 日晚上 11:05

日期 2:2012 年 6 月 27 日 12:15 AM

我正在使用以下代码行:

var days = Math.ceil((date2 - date1) / 86400000);

我的结果是 1,我希望它是 2(计算 6 月 26 日和 6 月 27 日)

4

2 回答 2

3

删除日期的时间部分,然后进行日期减法。请参阅此 jsfiddle或下面的代码段。

var d1 = new Date('June 26th 2012 11:05 PM'.replace('th',''));
var d2 = new Date('June 27th 2012 12:15 AM'.replace('th',''));

// remove the time portion, set the dates to midnight
d1.setHours(0,0,0,0);
d2.setHours(0,0,0,0);

var diff = Math.ceil((d2 - d1) / 86400000) + 1;

console.log(diff);

​</p>

于 2012-06-26T20:23:18.820 回答
1

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

将小时、分钟、秒和毫秒都设置为零。现在你有两个日期相同的日期。现在您可以按照以前的方式进行操作并获得正确的答案。

于 2012-06-26T19:58:44.473 回答