Node.js 如何以年和月为单位设置工期?

Node.js 如何以年和月为单位设置工期?,node.js,momentjs,Node.js,Momentjs,我使用node.js w/格式化时间。我想用月和年来确定患者的年龄。以下是到目前为止我得到的信息: patient: { ... birthDate: moment('Dec 15, 2009'), getAgeString: function() { var age = moment.duration(moment() - this.birthDate); return util.format('%d years, %d months',

我使用node.js w/格式化时间。我想用月和年来确定患者的年龄。以下是到目前为止我得到的信息:

patient: {
    ...
    birthDate: moment('Dec 15, 2009'),
    getAgeString: function() {
        var age = moment.duration(moment() - this.birthDate);
        return util.format('%d years, %d months', age.years(), age.months());
    }
}
getAgeString
函数给了我
3年1个月
,这与我想要的非常接近,只是我希望它正确地多元化。就我所知,《时刻》并没有为持续时间提供适当的多元化

this.birthDate.fromNow(true)
是“智能”的,但它似乎没有提供任何关于显示内容的自定义选项

我可以让moment.js做我想做的事情吗,或者是否有更好的node时间库


现在必须这样做:

getAgeString: function() {
    var age = moment.duration(moment() - this.birthDate);
    var years = age.years(), months = age.months();
    return util.format('%d year%s, %d month%s', years, years === 1 ? '' : 's', months, months === 1 ? '' : 's');
}

在您自己的代码中,希望正确复数化的单词似乎是字符串文字,而不是基于格式化模块。您可以执行条件年龄。年()或月()等于1。如果是,请使用字符串“年”或“月”,否则使用“年”或“月”。

是的……它们是字符串文字,但我更愿意不使用字符串文字,这样库也可以为我处理国际化问题。我只是不知道怎么做。