strftime.js ( strftime github ) ist eine der besten Formatierungsbibliotheken. Es ist extrem leicht - 30 KB - und effektiv. Mit dieser Funktion können Sie Sekunden einfach in einer Codezeile in Zeit umwandeln, wobei Sie sich hauptsächlich auf die native Datumsklasse verlassen.
Beim Erstellen eines neuen Datums ist jedes optionale Argument wie folgt positioniert:
new Date(year, month, day, hours, minutes, seconds, milliseconds);
Wenn Sie also ein neues Datum mit allen Argumenten als Null bis zu den Sekunden initialisieren, erhalten Sie:
var seconds = 150;
var date = new Date(0,0,0,0,0,seconds);
=> Sun Dec 31 1899 00:02:30 GMT-0500 (EST)
Sie können sehen, dass 150 Sekunden 2 Minuten und 30 Sekunden sind, wie aus dem Erstellungsdatum hervorgeht. Wenn Sie dann ein Strftime-Format ("% M:% S" für "MM: SS") verwenden, wird Ihre Minutenzeichenfolge ausgegeben.
var mm_ss_str = strftime("%M:%S", date);
=> "02:30"
In einer Zeile würde es so aussehen:
var mm_ss_str = strftime('%M:%S', new Date(0,0,0,0,0,seconds));
=> "02:30"
Außerdem können Sie auf diese Weise HH: MM: SS und MM: SS basierend auf der Anzahl der Sekunden austauschbar unterstützen. Beispielsweise:
# Less than an Hour (seconds < 3600)
var seconds = 2435;
strftime((seconds >= 3600 ? '%H:%M:%S' : '%M:%S'), new Date(0,0,0,0,0,seconds));
=> "40:35"
# More than an Hour (seconds >= 3600)
var seconds = 10050;
strftime((seconds >= 3600 ? '%H:%M:%S' : '%M:%S'), new Date(0,0,0,0,0,seconds));
=> "02:47:30"
Und natürlich können Sie einfach jedes Format übergeben, das Sie strftime möchten, wenn die Zeitzeichenfolge mehr oder weniger semantisch sein soll.
var format = 'Honey, you said you\'d be read in %S seconds %M minutes ago!';
strftime(format, new Date(0,0,0,0,0,1210));
=> "Honey, you said you'd be read in 10 seconds 20 minutes ago!"
Hoffe das hilft.