如何将十进制小时值转换为hh:mm:ss

如何在jquery或javascript中将十进制小时值(如1.6578)转换为hh:mm:ss?

我只是设法用hh:mm使用这段代码:

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

你可以这样做:

 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) { hours = "0" + hours; } if(minutes < 10) { minutes = "0" + minutes; } if(seconds < 10) { seconds = "0" + seconds; } alert("" + hours + ":" + minutes + ":" + seconds); 

不要自己进行计算,而是使用内置function在Date对象的任意日期设置秒数,将其转换为字符串,然后切掉日期部分,只留下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));