Moment.js在UTCdate之间的差异
我正在使用moments.js在JavaScript中处理date。 所有的date都是UTC(或应该是)。
我有以下date(从目前的60分钟):
//Wed, 04 Apr 2012 21:09:16 GMT to = moment.utc().add('m', 60).toDate();
现在我想知道在这个date和当前UTCdate时间之间的差异,所以我这样做:
seconds = moment.utc().diff(to, 'seconds');
这将返回10800
而不是3600
,所以3小时,而不是一个。
任何想法我做错了什么?
谢谢!
编辑:
我将行更新为seconds = moment().diff(to, 'seconds');
它得到的秒数,但它是-3600
而不是积极的。
编辑:
我现在有这两个时刻对象:
{ _d: Thu, 05 Apr 2012 17:33:18 GMT, _isUTC: true } { _d: Thu, 05 Apr 2012 16:38:45 GMT, _isUTC: true }
d1和d2。
当我做d1.diff(d2, 'hours', true);
这返回4
。 我认为这绝对是UTC的事情,但似乎这应该起作用。
这是一个合法的错误。 我刚刚在这里提交: https : //github.com/timrwood/moment/issues/261
为了解决这个问题,请使用下面的代码。
var a = moment.utc().add('m', 60).toDate(), b = moment().diff(to, 'seconds'); // use moment() instead of moment.utc()
另外,如果您需要获取date的toString
,则可以使用moment().toString()
代理包装的Date().toString()
因为你正在使用toDate()
可能是时区踢。 尝试直接与时刻(即更改to = moment.utc().add('m', 60);
)。