簡體   English   中英

當持續時間小於一小時時,使用moment.js以格式00:XX顯示持續時間

[英]using moment.js to display duration in format 00:XX when duration is less than an hour

我正在嘗試使用時刻持續時間格式來設置倒計時器的格式,但是一旦時間低於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 })

我可以解釋發生了什么(我創建了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因此當您從58 minutes 30 seconds傳遞到58 minutes 29 seconds ,您將從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"

不確定這是否是你想要的倒計時解決方案...也許在剩余部分上設置floortrunc ), ceilinground功能最好?

如果你想要一個天花板行為,你可以使用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");

試試'trim'參數。

moment.duration(3500000).format("hh:mm", { trim: false })

我的變種

moment.utc(3400000).format("HH:mm")

給出:“00:56”

希望將是有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM