我正在使用 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 小时,而不是 1 小时。
任何想法我做错了什么?
谢谢!
编辑:
我将该行更新为 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()
关于javascript - UTC 日期之间的 Moment.js 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018575/