2016-02-17 14 views
7

Jak przekonwertować wartość godziny dziesiętnej, jak 1.6578 na hh: mm: ss w jquery lub javascript? I tylko udało się to zrobić do hh: mm przy użyciu tego kodu:Jak przekonwertować wartość godziny dziesiętnej na hh: mm: ss

var decimaltime= "1.6578"; 
    var hrs = parseInt(Number(decimaltime)); 
    var min = Math.round((Number(decimaltime)-hrs) * 60); 
    var clocktime = hrs+':'+min; 
+1

[chwila() startOf ('dni') dodać (parseFloat ("1.6578"), "godzina") w formacie ("HH: MM: SS")...] (http://momentjs.com/) – Neil

+0

Dzięki Neil, chciałbym dowiedzieć się, jak to zrobić w czystym javascript, jeśli to możliwe, a także chciałbym uniknąć dodawania kolejnych bibliotek do mojej strony, aby ograniczyć mój już nadęty czas ładowania. Moment.js wygląda jednak świetnie! –

Odpowiedz

3

można zrobić coś takiego:

var decimalTimeString = "1.6578"; 
 
var decimalTime = parseFloat(decimalTimeString); 
 
decimalTime = decimalTime * 60 * 60; 
 
var hours = Math.floor((decimalTime/(60 * 60))); 
 
decimalTime = decimalTime - (hours * 60 * 60); 
 
var minutes = Math.floor((decimalTime/60)); 
 
decimalTime = decimalTime - (minutes * 60); 
 
var seconds = Math.round(decimalTime); 
 
if(hours < 10) 
 
{ 
 
\t hours = "0" + hours; 
 
} 
 
if(minutes < 10) 
 
{ 
 
\t minutes = "0" + minutes; 
 
} 
 
if(seconds < 10) 
 
{ 
 
\t seconds = "0" + seconds; 
 
} 
 
alert("" + hours + ":" + minutes + ":" + seconds);

+0

Dokładnie to, czego szukałem! Dziękuję bardzo! Rozumiem logikę po spojrzeniu na twoją odpowiedź :) –

+0

@Bruno nie ma za co! Cieszę się, że mogłem pomóc! – brso05

4

Zamiast robić samemu obliczeń, korzystanie zbudowany -w funkcji, aby ustawić sekundy na dowolną datę obiektu Date, przekonwertuj go na ciąg i odetnij część daty, pozostawiając tylko ciąg hh: mm: ss.

var decimalTimeString = "1.6578"; 
 
var n = new Date(0,0); 
 
n.setSeconds(+decimalTimeString * 60 * 60); 
 
document.write(n.toTimeString().slice(0, 8));

Powiązane problemy