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

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

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

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

谢谢!


当前回答

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

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

其他回答

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

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

如果diff是一瞬间

var diff = moment(20111031) - moment(20111010);
var formated1 = moment(diff).format("hh:mm:ss");
console.log("format 1: "+formated1);

使用这行代码:

moment.utc(moment.duration(4500, "seconds").asMilliseconds()).format("HH:mm:ss")

将持续时间转换为ms,然后转换为moment:

moment.utc(duration.as('milliseconds')).format('HH:mm:ss')

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

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

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