入力: 秒、出力: 文法的に正しい、書式設定された時間 (スペルアウトされた単語付き)。
これまでのところ、正しい複数形とコンマに注意してください40044373
。1 year, 98 days, 5 hours, 37 minutes, 1 second
私が見逃しているのは、最後のコンマの代わりに追加される「and」です (もちろん、十分な入力がある場合のみ)。たとえば、その場合の現在の代わりに1 year and 1 second
入力します。31556953
1 year, 1 second
function formatDuration (seconds) {
var numyears = Math.floor(seconds / 31556952);
if (numyears > 1) {var pluryears = " years, "} else {var pluryears = " year, "};
if (numyears > 0) {var printyears = numyears + pluryears;} else {var printyears = ''};
var numdays = Math.floor((seconds % 31556952) / 86400);
if (numdays > 1) {var plurdays = " days, "} else {var plurdays = " day, "};
if (numdays > 0) {var printdays = numdays + plurdays;} else {var printdays = ''};
var numhours = Math.floor(((seconds % 31556952) % 86400) / 3600);
if (numhours > 1) {var plurhours = " hours, "} else {var plurhours = " hour, "};
if (numhours > 0) {var printhours = numhours + plurhours;} else {var printhours = ''};
var numminutes = Math.floor((((seconds % 31556952) % 86400) % 3600) / 60);
if (numminutes > 1) {var plurminutes = " minutes, "} else {var plurminutes = " minute, "};
if (numminutes > 0) {var printminutes = numminutes + plurminutes;} else {var printminutes = ''};
var numseconds = (((seconds % 31556952) % 86400) % 3600) % 60;
if (numseconds > 1) {var plurseconds = " seconds"} else {var plurseconds = " second"};
if (numseconds > 0) {var printseconds = numseconds + plurseconds;} else {var printseconds = ''};
return(printyears + printdays + printhours + printminutes + printseconds)
}
formatDuration(31556953);