Ich mochte Powtacs Antwort, aber ich wollte sie in Angular.js verwenden, also habe ich einen Filter mit seinem Code erstellt.
.filter('HHMMSS', ['$filter', function ($filter) {
return function (input, decimals) {
var sec_num = parseInt(input, 10),
decimal = parseFloat(input) - sec_num,
hours = Math.floor(sec_num / 3600),
minutes = Math.floor((sec_num - (hours * 3600)) / 60),
seconds = sec_num - (hours * 3600) - (minutes * 60);
if (hours < 10) {hours = "0"+hours;}
if (minutes < 10) {minutes = "0"+minutes;}
if (seconds < 10) {seconds = "0"+seconds;}
var time = hours+':'+minutes+':'+seconds;
if (decimals > 0) {
time += '.' + $filter('number')(decimal, decimals).substr(2);
}
return time;
};
}])
Es ist funktional identisch, nur dass ich ein optionales Dezimalstellenfeld hinzugefügt habe, um Bruchteile von Sekunden anzuzeigen. Verwenden Sie es wie jeden anderen Filter:
{{ elapsedTime | HHMMSS }}
zeigt an: 01:23:45
{{ elapsedTime | HHMMSS : 3 }}
zeigt an: 01:23:45.678
15 Stimmen
Benchmarks einiger der vorgeschlagenen Antworten in diesem Thread. jsperf.com/ms-to-hh-mm-ss-time-format
0 Stimmen
Mögliche Duplikat von Sekunden in HH-MM-SS mit JavaScript umwandeln?