如何在本地时刻实例上使用 duration()?

How can I use duration() on local moment instance?

根据 moment.js documentation,您可以创建 moment 的本地实例,以使用全局设置以外的其他语言环境来格式化日期。

使用 format() 效果很好,但我如何在本地实例上使用 duration()?

这是我尝试过的:

moment.locale('en');
var localMoment = moment("2015-03-12");
localMoment.locale('de');

// format date:
moment("2015-03-12").format("LL");        // "March 12, 2015"
localMoment.format("LL");                 // "12. März 2015"

// format duration:
moment.duration(3600000).humanize();      // "an hour"
localMoment.duration(3600000).humanize(); // TypeError: localMoment.duration is not a function

简而言之,您不能使用 localMoment

调用 moment() 返回的 moment 对象没有 duration 函数(无论您设置特定区域设置还是保留默认设置)。

duration 功能属于模块本身(require 调用返回的 'object')。显然,它是这样设计的。 documentation 指出持续时间是无上下文的,因此没有定义的时刻。

要得到你想要的,你需要做这样的事情:

moment.duration( 3600000 ).locale('de').humanize(); //eine Stunde

语言环境将仅适用于该调用:

moment.duration( 3600000 ).humanize(); //an hour
moment.duration( 3600000 ).locale('de').humanize(); //eine Stunde
moment.duration( 3600000 ).humanize(); //an hour