【问题标题】:momentjs - diff() returns wrong time differencemomentjs - diff() 返回错误的时差
【发布时间】:2020-12-19 19:30:44
【问题描述】:

我正在尝试计算距离美国/中部午夜的时间。问题是我的计算返回 3 小时 30 分钟(我在欧洲是 20:30)。

moment('2020-12-19 23:59:59', "YYYY-MM-DD HH:mm:ss", 'US/Central') - moment.tz('US/Central')

我认为这应该可行。我现在正在计算美国/中部午夜和美国/中部之间的差异,但它返回的毫秒数是错误的。

你知道如何让它工作吗?

编辑:

diff 尝试过,结果还是一样:

moment('2020-12-19 23:59:59', "YYYY-MM-DD HH:mm:ss", 'US/Central').diff(moment.tz('US/Central'),'hours')
> 3

EDIT2:

尝试使用 moment().tz 而不是 moment.tz 并没有任何帮助...

moment('2020-12-19 23:59:59', "YYYY-MM-DD HH:mm:ss", 'US/Central').diff(moment().tz('US/Central'),'hours')
> 3

【问题讨论】:

  • 改用 moment().tz('US/Central')
  • @BerkKurkcuoglu 不,它不起作用......
  • 尝试设置默认时区而不是使用 tz,比如这个 moment.tz.setDefault('US/Central')

标签: javascript momentjs moment-timezone


【解决方案1】:

也许尝试分别获取 2 次,然后找到另一种方法来检查它们之间的差异。例如

var now = new Date();
var midnight = new Date();

midnight.setHours(0,0,0,0); // this set's the midnight var to exactly midnight at your systems timezone, you can then offset that time after this

然后使用 moment 或其他包来检查两次之间的差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    相关资源
    最近更新 更多