Moment.js不接受变量作为参数

时间:2016-05-09 21:39:02

标签: javascript timestamp momentjs

我正在使用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 个答案:

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