首页 > 解决方案 > 以 mm 为单位格式化秒:带矩的 ss

问题描述

我必须格式化一个持续时间,比如说4000秒到mm:sswith momentjs

到目前为止我所尝试的:

const duration = moment.duration(4000, 'seconds').asMilliseconds();
moment.utc(duration).format('mm:ss'); // output 06:40

这个问题是因为4000sec is equal to 01:06:40它只显示分钟和秒,而不是附加 1 小时到分钟。

标签: momentjs

解决方案


您根本不需要utc()功能,因为seconds它们总是相同的。您可以只使用 momentduration函数并获取分钟asMinutes和秒.seconds()

此外, asMinutes 会将float数字返回为 66.66,因此将其向上取整Math.floor()

工作演示:

const duration = moment.duration(4000, 'seconds')
const format = Math.floor(duration.asMinutes()) + ':' + duration.seconds()
console.log(format) //66:40
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.0/moment.min.js" integrity="sha512-Izh34nqeeR7/nwthfeE0SI3c8uhFSnqxV0sI9TvTcXiFJkMd6fB644O64BRq2P/LA/+7eRvCw4GmLsXksyTHBg==" crossorigin="anonymous"></script>


推荐阅读