繁体   English   中英

UTC 日期之间的 Moment.js 差异

[英]Moment.js diff between UTC dates

我正在使用moments.js来处理 javascript 中的日期。所有日期都是 UTC(或应该是)。

我有以下日期(从当前时间开始 60 分钟):

//Wed, 04 Apr 2012 21:09:16 GMT
to   = moment.utc().add('m', 60).toDate();

现在我想得到这个日期和当前 UTC 日期时间之间的秒数差异,所以我这样做:

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()

此外,如果您需要获取日期的toString ,您可以使用moment().toString()作为包装的Date().toString()的代理

可能是因为您使用的是时区toDate() 尝试直接使用 moment(即将其更改to = moment.utc().add('m', 60); )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM