javascript - UTC 日期之间的 Moment.js 差异

标签 javascript node.js date momentjs

我正在使用 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/

相关文章:

javascript - 在段落内展开

javascript - Node.js 休息框架

php - 保持页面连接的最佳方式?

javascript - Node+Express 发布错误

24 小时格式的 iOS 时间

javascript - 检索事件处理程序之外的鼠标位置

javascript - 使用按钮切换 2 个 DIVS(使用 Javascript、HTML 和 CSS)

javascript - 如何将网格添加到选项卡面板

javascript - 在不转换为本地时区的情况下在 Javascript 中格式化日期

python - 如何在 python 中初始化 time() 对象