Ich empfehle gewöhnliches Javascript, das das Date-Objekt verwendet. (Für eine kürzere Lösung mit toTimeString
siehe den zweiten Code-Schnipsel.)
var seconds = 9999;
// mit 1000 multiplizieren, da Date() Millisekunden erfordert
var date = new Date(seconds * 1000);
var hh = date.getUTCHours();
var mm = date.getUTCMinutes();
var ss = date.getSeconds();
// Wenn Sie einen Zeitstempel anstatt einer Dauer erstellen würden, würden Sie die folgende Zeile auskommentieren, um die 12-Stunden- (nicht 24-Stunden-) Zeit zu erhalten
// if (hh > 12) {hh = hh % 12;}
// Diese Zeilen stellen sicher, dass Sie zweistellige Zahlen haben
if (hh < 10) {hh = "0"+hh;}
if (mm < 10) {mm = "0"+mm;}
if (ss < 10) {ss = "0"+ss;}
// Dies formatiert Ihren String zu HH:MM:SS
var t = hh+":"+mm+":"+ss;
document.write(t);
(Natürlich wird das erstellte Date-Objekt ein tatsächliches Datum haben, aber diese Daten sind irrelevant, also brauchen Sie sich nicht darum zu kümmern.)
Bearbeiten (kurze Lösung):
Machen Sie Gebrauch von der toTimeString
Funktion und teilen Sie am Leerzeichen auf:
var seconds = 9999; // Ein beliebiger Wert
var date = new Date(seconds * 1000); // mit 1000 multiplizieren, da Date() Millisekunden erfordert
var timeStr = date.toTimeString().split(' ')[0];
toTimeString
gibt '16:54:58 GMT-0800 (PST)'
zurück, und durch das Aufteilen am ersten Leerzeichen erhalten Sie '16:54:58'
.
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?