moment.duration(3500000).format("hh:mm", { forceLength: true })
显示的结果是58,而不是00:58。
我在这里做错了什么?
我也尝试了变体,但没有成功。
moment.duration(3500000).format("HH:mm", { forceLength: true })
moment.duration(3500000).format("hh:mm", { forceLength: true })
显示的结果是58,而不是00:58。
我在这里做错了什么?
我也尝试了变体,但没有成功。
moment.duration(3500000).format("HH:mm", { forceLength: true })
我可以解释正在发生的事情(我创建了moment-duration-format
插件)。
forceLength
选项只会影响第一个带有值的令牌,也就是第一个值大于0
的令牌。在您的情况下,hh
令牌没有值。
https://github.com/jsmreese/moment-duration-format#force-length
将hh
转换为HH
对于格式化 moment 对象(日期)是有意义的,但对于使用我的插件格式化 moment duration 对象(时间长度)则无意义(除非您已经使用我的插件自定义了时长格式化令牌)。
如建议所示,使用 moment(moment.duration(3500000)._data).format("HH:mm");
是个不错的创造性解决方法。
如果您想获取存储库的dev
分支上的moment-duration-format版本,则有一个可以帮助的选项(请参见https://github.com/jsmreese/moment-duration-format/issues/22)...
在该版本中,您可以使用*
字符来表示要显示的最小令牌长度,即使它没有值:
moment.duration(3510000).format("*hh:mm");
--> "00:59"
moment.duration(3509999).format("*hh:mm");
--> "00:58"
请注意,dev
分支版本的默认行为从truncate
更改为round
,因此当您从58分钟30秒
到达58分钟29秒
时,时间会由00:59
下降到00:58
。在该版本中,您可以为此输出打开 trunc
选项:
moment.duration(3539999).format("*hh:mm", { trunc: true });
--> "00:58"
moment.duration(3540000).format("*hh:mm", { trunc: true });
--> "00:59"
不确定这是否是您想要的倒计时解决方案...也许设置余数的“floor”(“trunc”)、“ceiling”或“round”的功能最好?
如果您想要执行ceiling操作,可以使用“dev”分支版本以及“trunc”,并将“60000”添加到计时器值中:
moment.duration(3540000 + 60000).format("*hh:mm", { trunc: true });
--> "01:00"
moment.duration(3539999 + 60000).format("*hh:mm", { trunc: true });
--> "00:59"
moment.duration(3500000 + 60000).format("*hh:mm", { trunc: true });
--> "00:59"
moment.duration(3480000 + 60000).format("*hh:mm", { trunc: true });
--> "00:59"
moment.duration(3479999 + 60000).format("*hh:mm", { trunc: true });
--> "00:58"
试试这个
moment(moment.duration(3500000)._data).format("HH:mm");
duration
对象包含 _data
,其中包含我们需要用于格式化的时间 object
。 - Jyothi Babu Arajamoment.utc(3500000).format("HH:mm");
的结果不依赖于任何内部机制。无论哪种方式,唯一的问题是它只能在24小时内工作。 - undefined尝试使用“trim”参数。
moment.duration(3500000).format("hh:mm", { trim: false })
我的变量
moment.utc(3400000).format("HH:mm")
duration
没有format
方法。 - Jyothi Babu ArajaUTC
,在这种情况下是12:58
。 - Jyothi Babu Araja