我正在使用带有moment.js的node.js来格式化时间。我想让患者的年龄按月和年来格式化。这是我到目前为止所得到的:
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 years, 1 months
,这与我想要的非常接近,除非我希望它能够正确复数。据我所知,时刻不能为持续时间提供适当的多元化。
this.birthDate.fromNow(true)
是“聪明的”但它似乎没有提供任何显示选项的自定义选项。
我可以让moment.js做我想做的事,还是有更好的节点时间库?
现在必须这样做:
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');
}
答案 0 :(得分:1)
您希望复数正确的单词在您自己的代码中显示为字符串文字,而不是基于格式化模块。您可以执行有条件的age.years()或age.months()等于1.如果是,请使用字符串“year”或“month”,否则使用“years”或“months”。