formatDuration - 返回毫秒數的可讀格式
阿新 • • 發佈:2018-01-18
pre atd obj ont second font 字符串 str func
返回給定毫秒數的可讀格式。
用適當的值來劃分ms
,以獲得 day
,hour
,minute
,second
和 millisecond
的適當值。 通過 Array.filter()
使用 Object.entries()
只保留非零值。 使用 Array.map()
為每個值創建字符串,並且適當復數化。 使用 String.join(‘, ‘)
將這些值組合成一個字符串。
const formatDuration = ms => {
if (ms < 0) ms = -ms;
const time = {
day: Math.floor(ms / 86400000),
hour: Math.floor(ms / 3600000) % 24,
minute: Math.floor(ms / 60000) % 60,
second: Math.floor(ms / 1000) % 60,
millisecond: Math.floor(ms) % 1000
};
return Object.entries(time)
.filter(val => val[1] !== 0)
.map(val => val[1] + ‘ ‘ + (val[1] !== 1 ? val[0] + ‘s‘ : val[0]))
.join(‘, ‘);
};
formatDuration(1001); // ‘1 second, 1 millisecond‘
formatDuration(34325055574); // ‘397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds‘
formatDuration - 返回毫秒數的可讀格式