[英]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.