2017-07-29 10 views
0

Ich versuche, eine Logik zu schreiben Sekunden in die folgenden Formate zu konvertieren:konvertieren Sekunden HH: MM: SS: MS und/oder HH: MM: SS; F

  1. HH: MM: SS : MS, wo MS Millisekunden
  2. HH: MM:;: MM: SS die Rahmen

(und nicht nur auf HH F, wobei F sind diese Frage SS, daher unterscheidet sich von den anderen auf Stackoverflow)

Ich habe die folgende Logik für die HH: MM: SS Forma t derzeit:

getTime(seconds) { 
    let h = Math.floor(seconds/3600); 
    seconds = seconds % 3600; 
    let min = Math.floor(seconds/60); 
    seconds = Math.floor(seconds % 60); 
    if (seconds.toString().length < 2) seconds = "0" + seconds; 
    if (min.toString().length < 2) min = "0" + min; 
    return (h + ":" + min + ":" + seconds); 
} 

aber wie kann ich Millisekunden oder Frames bekommen?

+0

Mögliche Duplikate von [JavaScript Sekunden zu Zeit Zeichenfolge mit Format hh: mm: ss] (https://stackoverflow.com/questions/6312993/javascript-seconds-to-time-string-with-format-hhmmss) –

Antwort

0
var getStringFromMS=(ms,res=[])=>(
    [1000,60,60,24].reduce((rest,curr,i)=>(
    res[3-i]=rest%curr,Math.floor(rest/curr) 
    ),ms),res.join(":") 
); 

In action with current time

einfach über die verschiedenen Perioden durchlaufen und die Millisekunden zu Tage reduzieren, während Sie, dass das Ergebnis in res gespeichert, die dann einfach verbunden werden können. Sie können 1000 mit Rahmen

0

ersetzen Wenn seconds ein Schwimmer ist, Sie Math.round((seconds - Math.floor(seconds)) * 1000) nehmen verbleibenden Millisekunden zu erhalten. Oder Math.round((seconds - Math.floor(seconds)) * fps) wobei fps die Anzahl der Bilder pro Sekunde ist.

0

Wenn Ihre Funktion nur Sekunden in Anspruch nimmt, dann gibt es keine Möglichkeit, Millisekunden, um aus diesen Informationen ...

Sie können davon ausgehen, dass es null Millisekunden.

Wenn Sie auf Millisekunden genau sein möchten, sollte Ihre Funktion Millisekunden dauern.

Verwandte Themen