時間のフォーマットにnode.jsとmoment.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
。これは、適切に複数形にしたいと思うことを除けば、私が望むものにかなり近いものです。私が知る限り、momentは期間に対して適切な複数形を提供しません。
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');
}