当前位置: 首页 > 知识库问答 >
问题:

使用力矩。当持续时间小于一小时时,js以00:XX格式显示持续时间

慕容玉堂
2023-03-14

我正试图使用时刻持续时间格式设置倒计时计时器的格式,但一旦时间达到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 })

共有3个答案

松高歌
2023-03-14

尝试“trim”参数。

moment.duration(3500000).format("hh:mm", { trim: false })
林元明
2023-03-14

试试这个

moment(moment.duration(3500000)._data).format("HH:mm");
陶高峯
2023-03-14

我可以解释发生了什么(我创建了矩-持续时间-格式插件)。

forceLlong选项只影响第一个有值的标记,即第一个值大于0的标记。在您的例子中,hh标记没有值。https://github.com/jsmreese/moment-duration-format#force-length

hh切换到HH意味着格式化时刻对象(日期),但不意味着使用我的插件格式化时刻持续时间对象(时间长度)(除非您自定义了持续时间格式化令牌,这可以使用我的插件)。

使用时刻(moment.duration(3500000)。_data)。格式(“HH: mm”);是一个很好的创造性解决方法。

如果您想获取存储库的dev分支上的矩-持续时间-格式版本,有一个选项可以提供帮助(参见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"

请注意,分支版本中的默认行为从截断更改为舍入,因此当您从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"

不确定这是不是你想要的倒计时解决方案。。。在其余部分上设置地板、天花板或圆形可能是最好的?

如果您想要上限行为,您可以使用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"
 类似资料:
  • 我正在寻找一种从“ISO 8601持续时间格式”(P0DT0H0M0S)转换为小时的便捷方法。 到目前为止,我想到了这个: 如您所见,我的方法是将数字拆分并乘以24、1、1/60、1/3600以得到小时。我可以减少代码量吗? 样本数据和所需结果 输入: 'P1DT2H3M44S' (1 天 2 小时 3 分 44 秒) 期望输出: 26.062222222222222 (这是小时)

  • 问题内容: 我正在研究oracle db,但我不太擅长Oracle。我正在尝试按一个小时的时段划分一行。 例如,如果一个时间行给出如下, 开始时间(yyyy / mm / dd hh24:mi:ss)| 结束时间(yyyy / mm / dd hh24:mi:ss) 我想要看到的结果是这样的: 我已经被搜索过如何做,但是找不到。 但是我想可以通过使用“ CONNECT BY”来完成。 任何帮助都会

  • 我正在寻找javascript/jquery库,它可以为我提供UI和功能来选择ISO 8601格式的持续时间。 用户界面应包含多个级联选择框,用户可以选择月,小时,天,周...在ISO_8601中定义。 选择后,库应将其转换为标准ISO_8601持续时间格式的代码,反之亦然。 例如,“P3Y6M4DT12H30M5S”表示持续时间为“三年六个月四天十二小时三十分五秒”。

  • 对于我的项目,我必须读取在CSV文件中提供给我们的数据并以某种格式将其写出。我几乎完成了,但我遇到的问题是我的程序没有完全读取给定的时间。从这里开始,我的程序只是读取所有给定的时间。 我试图将<code>字符串时间。 这应该会回来 [芝麻街|埃尔莫之最1240:28:11] 但它返回 [Elmo的最佳|芝麻街124;2:29,1:30,2:09,1:46,1:55,2:02,1:42,2:40,1

  • 问题内容: 当前时间显示为13:35 PM, 但是我想以AM / PM显示为12小时格式,即1:35 PM而不是13:35 PM 当前代码如下 问题答案: 最简单的方法,通过使用最新模式得到它- ,其中 -上午/下午的小时数(1-12) -小时 -上午/下午标记 程式码片段: