Wie kann ich die Sekunden in eine HH-MM-SS
Zeichenfolge mit JavaScript?
Antworten
Zu viele Anzeigen?Sie können dies ohne eine externe JavaScript-Bibliothek mit Hilfe der JavaScript-Date-Methode wie folgt erreichen:
var date = new Date(null);
date.setSeconds(SECONDS); // specify value for SECONDS here
var result = date.toISOString().substr(11, 8);
Oder, wie bei @Frank Kommentar; ein Einzeiler:
new Date(SECONDS * 1000).toISOString().substr(11, 8);
Aktualisiert (2020):
Bitte verwenden Sie die einzeilige Lösung von @Frank:
new Date(SECONDS * 1000).toISOString().substr(11, 8)
Si SEKUNDEN<3600 und wenn Sie nur anzeigen möchten MM:SS dann verwenden Sie den unten stehenden Code:
new Date(SECONDS * 1000).toISOString().substr(14, 5)
Das ist bei weitem die beste Lösung.
Alte Antwort:
Verwenden Sie die Moment.js
Bibliothek.
Ich glaube nicht, dass irgendeine eingebaute Funktion des Standard-Datumsobjekts dies für Sie auf eine Art und Weise erledigt, die bequemer ist, als wenn Sie die Berechnung selbst vornehmen.
hours = Math.floor(totalSeconds / 3600);
totalSeconds %= 3600;
minutes = Math.floor(totalSeconds / 60);
seconds = totalSeconds % 60;
Exemple :
let totalSeconds = 28565;
let hours = Math.floor(totalSeconds / 3600);
totalSeconds %= 3600;
let minutes = Math.floor(totalSeconds / 60);
let seconds = totalSeconds % 60;
console.log("hours: " + hours);
console.log("minutes: " + minutes);
console.log("seconds: " + seconds);
// If you want strings with leading zeroes:
minutes = String(minutes).padStart(2, "0");
hours = String(hours).padStart(2, "0");
seconds = String(seconds).padStart(2, "0");
console.log(hours + ":" + minutes + ":" + seconds);
Ich weiß, das ist schon etwas älter, aber...
ES2015:
var toHHMMSS = (secs) => {
var sec_num = parseInt(secs, 10)
var hours = Math.floor(sec_num / 3600)
var minutes = Math.floor(sec_num / 60) % 60
var seconds = sec_num % 60
return [hours,minutes,seconds]
.map(v => v < 10 ? "0" + v : v)
.filter((v,i) => v !== "00" || i > 0)
.join(":")
}
Es wird ausgegeben:
toHHMMSS(129600) // 36:00:00
toHHMMSS(13545) // 03:45:45
toHHMMSS(180) // 03:00
toHHMMSS(18) // 00:18
Wie Cleiton in seine Antwort , moment.js kann hierfür verwendet werden:
moment().startOf('day')
.seconds(15457)
.format('H:mm:ss');
- See previous answers
- Weitere Antworten anzeigen