Answer
t.me/js_testОтвет:
const humanReadable = (seconds) => {
const round = (x) => (x < 10 ? `0${x}` : `${x}`);
const hours = parseInt(seconds / (60 * 60));
const min = parseInt((seconds / 60) % 60);
const sec = seconds % 60;
return [hours, min, sec].map(round).join(':');
};
Обьяснение:
Обьявлем воспомагательную функцию round, которая добавляет 0 к числу, если оно меньше 10.
Далее высчитываем:
Часы - в одном часе 3600 секунд - делим seconds на 3600, с помощью parseInt получаем целую часть.
Минуты - в одной минуте 60 секунд - делим seconds на 60, после чего берём остачу от деления на 60, так как 60 минут это час ( например, если у нас 3660 секунд - после первого действия мы получим 61 минуту, после чего берём остачу от 60 - получаем одну минуту)
Секунды - остача от деления на 60.
После прогоняем все полученные значения через функцию round и джоиним через :.
Код для проверки:
const humanReadable = (seconds) => {
const round = (x) => (x < 10 ? `0${x}` : `${x}`);
const hours = parseInt(seconds / (60 * 60));
const min = parseInt((seconds / 60) % 60);
const sec = seconds % 60;
return [hours, min, sec].map(round).join(':');
};
console.log(humanReadable(359999)); // 99:59:59
console.log(humanReadable(0)); // 00:00:00
console.log(humanReadable(3661)); // 01:01:01