2013-01-16 53 views
2

我使用node.js w/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,這是非常接近我想要的東西,但我想它正確地使用複數。據我所知,時間不能提供適當的複數持續時間。

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'); 
} 

回答

1

,你正在尋找變複數正確似乎是在自己的代碼串文字的話,並沒有。你可以做一個條件age.years()或age.months()等於1.如果它們是,使用字符串「年」或「月」,否則使用「年」或「月」。

+0

是的...他們是字符串文字,但我不希望使用字符串文字,因此圖書館也可以爲我處理國際化。我只是不知道該怎麼做。 – mpen

相關問題