function timeDecompose(s, toString) { toString = Boolean(toString) || false; s = Number(s); var time = {}; time.year = Math.floor(s / 3.154e7); time.month = Math.floor(s % 3.154e7 / 2.628e6); time.day = Math.floor(s % 3.154e7 % 2.628e6 / 86400); time.hour = Math.floor(s % 3.154e7 % 2.628e6 % 86400 / 3600); time.minute = Math.floor(s % 3.154e7 % 2.628e6 % 86400 % 3600 / 60); time.second = Math.floor(s % 3.154e7 % 2.628e6 % 86400 % 3600 % 60); if (toString) { var output = ''; for (var unit in time) { if (time[unit]) { output += time[unit]; output += ' ' + unit; if (time[unit] > 1) output += 's'; output += ' and '; } } output = output.replace(/ and $/, ''); return output; } return time; }