momentjs - diff() 返回错误的时差

问题描述

我正在尝试计算美国/中部午夜之前的时间。问题是我的计算返回了 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','US/Central').diff(moment.tz('US/Central'),'hours')
> 3

编辑 2:

尝试了 moment().tz 而不是 moment.tz 但它根本没有帮助...

moment('2020-12-19 23:59:59','US/Central').diff(moment().tz('US/Central'),'hours')
> 3

解决方法

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

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

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...