Есть много вариантов решения этой проблемы, и, очевидно, есть хороший вариант, который предлагается, но я хочу добавить еще один оптимизированный код здесь
function formatSeconds(sec) {
return [(sec / 3600), ((sec % 3600) / 60), ((sec % 3600) % 60)]
.map(v => v < 10 ? "0" + parseInt(v) : parseInt(v))
.filter((i, j) => i !== "00" || j > 0)
.join(":");
}
если вы не хотите форматировать ноль с числом меньше 10, вы можете использовать
function formatSeconds(sec) {
return parseInt(sec / 3600) + ':' + parseInt((sec % 3600) / 60) + ':' + parseInt((sec % 3600) % 60);
}
Пример кода http://fiddly.org/1c476/1