Я создал функцию внутри JavaScript, которая преобразует секунды в формат hh:mm:ss
. В настоящее время он отлично работает, но я бы хотел, чтобы он был немного более утончен, чем сейчас.
Это то, что у меня есть на данный момент:
convertTime(secs){
var sec = parseInt(secs, 10),
hours = Math.floor(sec / 3600),
minutes = Math.floor((sec - (hours * 3600)) / 60),
seconds = sec - (hours * 3600) - (minutes * 60);
if(hours < 10){ hours = "0" + hours; }
if(minutes < 10){ minutes = "0" + minutes; }
if(seconds < 10){ seconds = "0" + seconds; }
return hours + ":" + minutes + ":" + seconds;
}
// this will output 00:02:03
convertTime(123);
Тем не менее, я предпочел бы, чтобы возвращаемые выходы были чем-то вроде этого:
11 → 0:11
60 → 1:00
1200 → 20:00
3600 → 1:00:00
36000 → 10:00:00
Я сделал бесчисленные попытки создать (и найти) функцию, которая может сделать что-то подобное, но все конверсии JavaScript, с которыми я сталкивался (и/или сделанные), всегда выполняются в формате hh:mm:ss
или просто выводятся неправильно.
Вся помощь действительно оценена, Cheers.
Просто измените оператор возврата на
return parseInt( hours ) > 0 ? ( hours + ":" + minutes + ":" + seconds ) : ( minutes + ":" + seconds ) ;
Просто не возвращайте hours
если hours
не превышают 0
В случае, если ваши minutes
нужно обрезать, если нет hours
то обновите свою логику дополнений до
if(hours > 0 && minutes < 10){ minutes = "0" + minutes; }
0
(то есть: 02:40
и 02:01:00
Более компактная версия ответа @gurvinder372
return (parseInt(hours) > 0 ? hours + ":" : "") + minutes + ":" + seconds;