我尝试使用片段持续时间格式来设置倒数计时器的格式 但是一旦时间低于60分钟,时间就会消失 例如60分钟显示为" 01:00" 哪个是对的 59分钟显示为" 59" 这是不正确的,它应显示为" 00:59"
其中3500000毫秒等于58分钟
我有以下代码:
moment.duration(3500000).format("hh:mm", { forceLength: true })
显示结果:58,而不是00:58
我在这里做错了什么?
我也试过变化无济于事
moment.duration(3500000).format("HH:mm", { forceLength: true })
答案 0 :(得分:6)
我可以解释发生了什么(我创建了moment-duration-format
插件)。
forceLength
选项仅影响具有值的第一个标记,这意味着第一个标记的值大于0
。在您的情况下,hh
令牌没有值。
https://github.com/jsmreese/moment-duration-format#force-length
从hh
切换到HH
意味着用于格式化时刻对象(日期),但不能用于使用我的插件格式化时刻持续时间对象(时间长度)(除非您已自定义持续时间格式令牌,这可以使用我的插件)。
根据建议使用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
,因此当您通过时,您将从00:59
下降到00:58
从58 minutes 30 seconds
到58 minutes 29 seconds
。在该版本中,您可以为此输出启用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
的功能剩下的会是最好的吗?
如果您想要天花板行为,可以使用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"
答案 1 :(得分:5)
试试这个
moment(moment.duration(3500000)._data).format("HH:mm");
答案 2 :(得分:0)
我的变种
with open('homework.txt','r') as a_file:
for line in a_file.readlines():
split_line=line.split(",")
name=split_line[0]
score=split_line[1]
YOUR CODE HERE
给出:“00:56”
希望将是有用的。
答案 3 :(得分:0)
尝试使用“修剪”参数。
moment.duration(3500000).format("hh:mm", { trim: false })