Ticks in Zeitformat konvertieren (hh: mm: ss)

8

Ich erhalte einen Videolängenwert als Ticks vom Webserver. Ich möchte es im Format "hh: mm: ss" anzeigen. Wie kann ich das in JavaScript machen?

    
Null Pointer 16.01.2013, 01:42
quelle

4 Antworten

10

Angenommen, die Ticks sind in Sekunden (Sie können sie zuerst in Sekunden umwandeln, wenn dies nicht der Fall ist), gelangen Sie zum gewünschten Format, indem Sie die Anzahl der ganzen Minuten und Stunden in der Zeitspanne ermitteln und dann die verbleibenden Sekunden nehmen . Der Modulo -Operator ist hier ebenso nützlich wie der Tatsache ist, dass eine Stunde 3600 Sekunden und eine Minute 60 Sekunden ist:

%Vor%

Siehe diese Antwort zum Auffüllen einer Zahl mit führenden Nullen in JS (die obige Methode leitet sich von dieser Antwort ab).

    
nbrooks 16.01.2013, 01:46
quelle
3

Das ist eine alte Frage, aber ich war mit keiner der Antworten zufrieden.

Es gibt 3 Probleme hier:

  • Konvertieren der Tick-Größe in Sekunden
  • Extrahieren der Stunden, Minuten und Sekunden von einer Dauer in Sekunden
  • Formatieren der Zahlen mit 2 Ziffern

Teil 1 - Zecken

Tick Größen für Medien kommen in vielen Dauern , also Einige Annahmen müssen getroffen werden, um die Frage zu beantworten.

Da die gewünschte Antwort in Sekunden, Minuten und Stunden angegeben ist, besteht der erste Schritt darin, den "Tick" -Wert in Sekunden zu konvertieren.

%Vor%

Wenn die Ticks beispielsweise in Millisekunden waren, wäre die Konvertierung

%Vor%

Teil 2 - Extrahieren Stunde, Minute & amp; Sekunde

  • hour = seconds / secondsperhour = & gt; %Code%
  • hour = seconds / 3600 = & gt; %Code%
  • minute = seconds / secondsperminute modulus minutesperhour = & gt; %Code%

Teil 3 - Formatierung

  • Es gibt eine Reihe von Möglichkeiten, führende Nullen für Zahlen zu formatieren. Diese verwendet eine einfache Funktion, die für dieses Beispiel spezifisch ist (max. 2 Ziffern).

z.B.

%Vor%

Hinweis: Aufgrund von Gleitkommafehlern müssen Sie Math.floor sowohl auf die Stunden- als auch auf die Minutenwerte anwenden. Sie könnten minute = (seconds / 60) % 60) in die Funktion second = seconds modulus secondsperminute einfügen, wenn Sie den Hauptcode verkürzen möchten.

Die endgültige Antwort lautet:

%Vor%

Hinweis: Für die Demo habe ich second = seconds % 60 ( Math.floor ) zur Stundenanzeige hinzugefügt, da die Stunden seit 1971 eine "große" Zahl sind - also nicht auf 2 Dezimalstellen formatiert:)

JSfiddle Demo: Ссылка

oder wenn Sie pad2 in die % 24 Ссылка

setzen möchten     
Gone Coding 18.01.2016 11:20
quelle
1

Sie benötigen den folgenden Code:

%Vor%     
Kees C. Bakker 17.12.2015 09:31
quelle
1

Angenommen, die Ticks sind im Javascript-Format (Millisekunden seit Mitternacht 1. Januar 1970):

%Vor%

Ссылка

BEARBEITEN:

    
Mike Fuchs 06.10.2015 16:36
quelle

Tags und Links