是否有任何方法我可以使用moment.js格式方法持续时间对象?我在文档中找不到它,也没有看到它是持续时间对象的属性。

我希望能够做到以下几点:

var diff = moment(end).unix() - moment(start).unix();
moment.duration(diff).format('hh:mm:ss')

此外,如果有其他库可以轻松地容纳这种功能,我会很有兴趣推荐。

谢谢!


当前回答

只需moment.js,不需要任何其他插件

moment().startOf('day').seconds(duration).format('HH:mm:ss')

其他回答

我的特定用例的最佳场景是:

var duration = moment.duration("09:30"),
    formatted = moment.utc(duration.asMilliseconds()).format("HH:mm");

这改进了@Wilson的回答,因为它不访问私有内部属性_data。

如果你愿意使用不同的javascript库,numeric .js可以将秒格式化如下(例如1000秒):

var string = numeral(1000).format('00:00');
// '00:16:40'

这对我来说很管用:

moment({minutes: 150}).format('HH:mm') // 01:30

Moment.duration (x).format()已弃用。 您可以使用moment.utc(4366589).format("HH:mm:ss")来获得所需的响应。

console.log (moment.utc (4366589) .format (HH: mm: ss)) < script src = " https://momentjs.com/downloads/moment.js " > < /脚本> < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js " > < /脚本>

在这些情况下,我使用经典的format函数:

var diff = moment(end).unix() - moment(start).unix();

//use unix function instead of difference
moment.unix(diff).format('hh:mm:ss')

这是一个hack,因为时间差异被视为一个标准的时刻日期,一个早期的epoch日期时间,但这对我们的目标并不重要,你不需要任何插件