繁体   English   中英

如果持续时间为24小时,则Moment.js返回2天

[英]Moment.js returning 2 days if duration is 24 hours

我需要一个函数,用户可以在其中插入特定的时间范围(例如1周或5天12个小时)。 Moment.js的持续时间看起来最有希望。

下面的代码返回2 00:00 ,其中2等于天数。 这应该是1,因为那里只有24小时。

moment.utc(moment.duration(24, 'hours').as("milliseconds")).format("D HH:mm");

我在这里做错了什么?

您可以通过调用moment.utc(...)将24小时设置为距1970-01-01(Unix纪元)的毫秒数。 这意味着您的时刻保留了日期1970-01-02 00:00 ,然后在打印日期部分。

如果时间范围是固定的并由您自己设置,则始终可以手动输入开始的时间(以毫秒为单位)。 例如24小时为86400000毫秒。

您必须以瞬间持续时间而不是瞬间来格式化毫秒。 我认为下面的线给出了您的期望值。

 moment.duration(moment.duration(24, 'hours').as("milliseconds")).format("D HH:mm");

回答:1 00:00

我通过以下代码和插件对其进行了修复:

moment.duration(moment().diff(moment().subtract(1, 'days')));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM