【发布时间】:2018-06-28 08:16:14
【问题描述】:
我正在尝试使用时刻 js 以及持续时间和格式的组合将持续时间(以秒为单位)转换为人类友好的输出。 我以秒为单位获取持续时间,然后像这样格式化它:
const value = 337650
const duration = (durationSeconds) => {
const duration = moment.duration(durationSeconds, 'seconds')
return moment.utc(duration.asMilliseconds()).format('D [days] HH:mm:ss')
}
console.log(`Duration: ${duration(value)}`)
输出
“时长:4 天 21:47:30”
我的问题是它似乎错了。像https://www.tools4noobs.com/online_tools/seconds_to_hh_mm_ss/ 这样的在线服务显示时间减少了一天。 我不确定这些服务正在使用什么库/算法,以及它们是否显示了正确的经过时间或时刻 js。 任何想法都非常感谢!
【问题讨论】:
-
我们知道一天有 86400 秒。 337650 / 86400 = 3.9079 天,所以绝对少于 Moment 为您打印的四天。
-
由于控制台输出显示持续时间包含
_data: [object Object] { days: 3, hours: 21, ...,很明显是moment.utc().format() 部分实际上搞砸了。
标签: javascript time momentjs