输出时间,单位为hh:mm:ss格式,相对于秒数

时间:2017-09-21 10:55:08

标签: javascript

我在 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,或者输出不正确。

非常感谢所有帮助, 欢呼声。

2 个答案:

答案 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;