首页 > 解决方案 > Moment JS持续时间显示错误的时间?

问题描述

我试图使用时刻 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”

JSBin 在这里

我的问题是它似乎是错误的。像https://www.tools4noobs.com/online_tools/seconds_to_hh_mm_ss/这样的在线服务显示时间减少了一天。我不确定这些服务正在使用什么库/算法,以及它们是否显示了正确的经过时间或时刻 js。任何想法都非常感谢!

标签: javascripttimemomentjs

解决方案


您似乎将持续时间转换为纪元时间,然后对其进行格式化,这将是错误的。

请查看此 Moment 问题,了解有关持续时间格式的详细信息。https://github.com/moment/moment/issues/1048


推荐阅读