2016-05-09 124 views
1

我正在使用moment.js来查找两个区间之间的时间差。Moment.js不接受变量作为参数

这里是我的JS代码:

console.log("from_url "+from_url); //prints: 2016-05-03T10:00:00 
var a = moment(from_url); 
console.log("a "+a); //prints : 1462294800000 isntead of 2016-05-03T10:00:00 

因此,我无法得到确切的差异。 任何人都可以建议我去哪里错了吗? 谢谢。

回答

1

使用+将片刻对象转换为基元时,Object.prototype.valueOf()已被覆盖以产生以毫秒为单位的unix时间戳 - 或者ES2015标准将其称为“时间值”。因此,你所看到的就是打印出来的价值。

如果你想要的日期,只需使用.format()

var a = moment("2016-05-03T10:00:00"); "a " + a.format() 
"a 2016-05-03T10:00:00-05:00" 

注意格式豁出去参数:http://momentjs.com/docs/#/displaying/format/

至于找出两个日期和时间之间的区别老话 - 你应该构建两个时刻和使用时刻的.diff()函数进行比较:http://momentjs.com/docs/#/displaying/difference/

例如,要获取日期和现在之间的小时差:

moment("2016-05-03T10:00:00").diff(moment(), 'hours') 
-155