我在 JavaScript 中创建了一个函数,它将秒转换为hh:mm:ss
格式。它目前工作正常,但是,我希望它比现在更加精致。
这就是我现在所拥有的:
convertTime(secs){
var sec = parseInt(secs, 10),
hours = Math.floor(sec / 3600),
minutes = Math.floor((sec - (hours * 3600)) / 60),
seconds = sec - (hours * 3600) - (minutes * 60);
if(hours < 10){ hours = "0" + hours; }
if(minutes < 10){ minutes = "0" + minutes; }
if(seconds < 10){ seconds = "0" + seconds; }
return hours + ":" + minutes + ":" + seconds;
}
// this will output 00:02:03
convertTime(123);
但是,我更倾向于将返回的输出改为:
11 - &gt; 0:11
60 - &gt; 1:00
1200 - &gt; 20:00
3600 - &gt; 1:00:00
36000 - &gt; 10:00:00
我已经无数次尝试创建(并找到)可以执行类似功能的功能,但我遇到(和/或制作)的所有 JavaScript 转换始终以格式完成hh:mm:ss
,或者输出不正确。
非常感谢所有帮助, 欢呼声。
答案 0 :(得分:1)
只需将您的退货声明更改为
即可return parseInt( hours ) > 0 ? ( hours + ":" + minutes + ":" + seconds ) : ( minutes + ":" + seconds ) ;
如果hours
不大于hours
0
如果没有minutes
,则需要修剪hours
,然后将填充逻辑更新为
if(hours > 0 && minutes < 10){ minutes = "0" + minutes; }
答案 1 :(得分:1)
@ gurvinder372响应的更紧凑版本
return (parseInt(hours) > 0 ? hours + ":" : "") + minutes + ":" + seconds;