准确计算两个日期之间的天数(包括时间)

时间:2014-11-30 16:05:00

标签: javascript date datetime

我正在开发一个前端应用程序,并且正在尝试计算两个日期之间的天数,并且我越是阅读正确/准确的方法来计算两个日期之间的日期,我就越多感到困惑。

所以我想,我将在这里发布另一个问题,以便最终阐明这种混乱。

此外,当我最安全地进行计算时,我正在尝试锻炼;当我获得原始UTC日期后,我从下面的后端获得原始UTC日期后,它们是否已转换为区域设置日期和时间?我的意思是,获取UTC日期之间的差异或区域设置日期和时间之间的差异会更好吗?

以下是UTC日期:

UTC Date 1:  2014-11-30T15:41:51.012+0000
UTC Date 2:  2014-01-09T02:56:36.000+0000

以下是区域设置日期(在Windows上;这将是Linux上的diff格式):

Locale Date 1:  11/30/2014, 3:41:51 PM
Locale Date 2:  1/9/2014, 2:56:36 AM

所以我的问题是,哪一个会在日期,UTC或区域设置之间提供准确的日期?此外,如何计算,JavaScript函数代码段或演示将帮助我和其他人。

谢谢!

2 个答案:

答案 0 :(得分:1)

老实说,我会使用Moment.js

http://momentjs.com/docs/#/displaying/difference/

var a = moment('2014-11-30T15:41:51.012+0000');
var b = moment('2014-11-30T15:41:51.012+0000');
var dayDiff = a.diff(b, 'days');

你可以原生地做到这一点,但这样做适合你,它是轻量级的,它会处理你所有的语言环境困境,你有可能想要在其他地方使用其他日期操作,你也可以将它用于

答案 1 :(得分:1)

这就是你用纯JS做的方法:

var Date1 = new Date('2014-11-30T15:41:51.012+0000'.substr(0,10)).getTime();
var Date2 = new Date('2014-01-09T02:56:36.000+0000'.substr(0,10)).getTime();
var Diff = Math.floor(Math.max(Date1,Date2)-Math.min(Date1,Date2))/1000/60/60/24;