2016-02-17 19 views
7

Nasıl jquery veya javascript içinde 1.6578 hh: mm: ss gibi bir ondalık saat değeri dönüştürebilirsiniz?Nasıl ondalık saate çevirir hh: mm: ss için

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

[anı() startOf ('gün') ekleyin (parseFloat ("1,6578"), "saat") biçiminde ("ss: dd: ss.");..] (http://momentjs.com/) – Neil

+0

Teşekkürler Neil, mümkünse saf javascript ile nasıl yapılacağını öğrenmek istiyorum ve zaten şişmiş yükleme süremi kısmak için sayfama daha fazla kitaplık eklemekten kaçınmak istiyorum. Moment.js olsa harika görünüyor! –

cevap

3

Böyle bir şey yapabileceğini: Bu kodu kullanarak mm: Ben sadece hh bunu başardı hesaplamaları kendiniz

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

Tam olarak ne peşimdeydim! Çok teşekkür ederim! Cevabınıza baktıktan sonra mantığı anlıyorum :) –

+0

@Bruno'ya hoşgeldiniz! Yardımcı olduğuma sevindim! – brso05

4

yerine yapıyor, kullanım inşa - Bir Date nesnesinin rasgele bir tarihindeki saniyeleri ayarlamak için işlevsellik, bir dizeye dönüştürün ve yalnızca ss: dd: ss dizesini bırakarak tarih bölümünü kesin.

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

İlgili konular