【发布时间】:2016-08-16 20:15:46
【问题描述】:
输入:秒,输出:语法正确、格式化的时间(拼出单词)。
到目前为止,我设法从 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);
【问题讨论】:
标签: javascript date time formatting human-readable