javascript - 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”
我的问题是它似乎是错误的。像https://www.tools4noobs.com/online_tools/seconds_to_hh_mm_ss/这样的在线服务显示时间减少了一天。我不确定这些服务正在使用什么库/算法,以及它们是否显示了正确的经过时间或时刻 js。任何想法都非常感谢!
解决方案
您似乎将持续时间转换为纪元时间,然后对其进行格式化,这将是错误的。
请查看此 Moment 问题,了解有关持续时间格式的详细信息。https://github.com/moment/moment/issues/1048
推荐阅读
- javascript - Formspree 表单在提交时提醒两次
- python - “列表”对象没有属性“_meta”
- python - PyQt5 来自 apt install python3-pyqt5
- python - 拖放小部件实现错误 - RuntimeWarning:MetaObjectBuilder::addMethod:为“dropped”提供的方法签名无效
- android - 使用 switchpreferenceCompat 设置活动
- excel - 为excel vba中的单元格分配约束
- azure - 从 Azure AD B2C 自定义策略加密数据的最佳方式
- mysql - 尝试执行过程时,我不断收到 MySQL 错误 #1054
- ruby - 有人可以指出我正确的方向,但引导我提出问题,问自己为我的硬件解决这个错误
- javascript - 使用 history.push 时,不会呈现以下屏幕