有没有办法在moment.js的帮助下计算两个ISO日期的时差?
答案 0 :(得分:1)
with momentjs:
moment('Mon May 30 2016 08:00:00.000Z GMT+0200 (CEST)').diff('Mon May 30 2016 07:00:00.000Z GMT+0200 (CEST)');
没有momentjs:
new Date('Mon May 30 2016 08:00:00.000Z GMT+0200 (CEST)').getTime() - new Date('Mon May 30 2016 07:00:00.000Z GMT+0200 (CEST)')
答案 1 :(得分:1)
正如moment.js文档中所述。
您可以使用此代码段在两个日期之间获得差异:
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000
如果你想要几天的差异,你可以使用这个:
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1
答案 2 :(得分:1)
你可以尝试,
var m1 = moment('2016-04-06T17:49:18.000Z');
var m2 = moment('2016-04-06T17:47:24.000Z');
var diffSeconds = (m2.diff(m1)) / 1000;
或者在纯JS中,但不是真正的跨浏览器友好。
var date1 = new Date('2016-04-06T17:49:18.000Z');
var date2 = new Date('2016-04-06T17:47:24.000Z');
var dateDiff = date2 - date1;
var dateDiffSeconds = dateDiff / 1000;
答案 3 :(得分:1)
这里有几个合理的答案,但是知道当前的.diff()
函数接受一个单位参数。因此,以下内容将为您提供两个ISO日期之间的差异,以秒为单位:
moment('2016-01-01T12:25:32').diff('2016-01-01T22:13:16', 'seconds')
-35264
或者,您可以提供diff而不是字符串的时刻:
var a = moment('2016-01-01T22:13:16');
moment('2016-01-01T12:25:32').diff(a, 'seconds')
-35264
或JS日期:
moment('2016-01-01T12:25:32').diff(new Date(), 'seconds')
-12940577
如果你愿意。您也可以使用许多其他单位尺寸:
moment('2016-01-01T12:25:32').diff('2016-01-01T22:13:16', 'hours')
-9
moment('2016-01-01T12:25:32').diff('2016-04-01T22:13:16', 'months')
-3