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

11 javascript jquery date

如何在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;
Run Code Online (Sandbox Code Playgroud)

And*_*ems 13

不是自己进行计算,而是使用内置功能在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));
Run Code Online (Sandbox Code Playgroud)

  • 如果只需要小时和分钟(hh:mm),则可以使用`n.setMinutes(+ decimalTimeString * 60); var result = n.toTimeString()。slice(0,5);` (2认同)

brs*_*o05 7

你可以这样做:

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);
Run Code Online (Sandbox Code Playgroud)