将秒转换为HH:MM:SS

sha*_*taf 19 javascript time

可能重复:
用javascript将秒转换为HH-MM-SS?

嗨,

我有一个16.4534的浮点数,这是视频持续时间的秒数.我想把它转换成HH:MM:SS所以看起来像00:00:16.

做过搜索但没有找到任何相关的东西.

我需要使用正则表达式吗?

非常感谢.

提前致谢.

Tho*_*ben 101

function secondsToHms(d) {
    d = Number(d);

    var h = Math.floor(d / 3600);
    var m = Math.floor(d % 3600 / 60);
    var s = Math.floor(d % 3600 % 60);

    return ('0' + h).slice(-2) + ":" + ('0' + m).slice(-2) + ":" + ('0' + s).slice(-2);
}

document.writeln('secondsToHms(10) = ' + secondsToHms(10) + '<br>');
document.writeln('secondsToHms(30) = ' + secondsToHms(30) + '<br>');
document.writeln('secondsToHms(60) = ' + secondsToHms(60) + '<br>');
document.writeln('secondsToHms(100) = ' + secondsToHms(100) + '<br>');
document.writeln('secondsToHms(119) = ' + secondsToHms(119) + '<br>');
document.writeln('secondsToHms(500) = ' + secondsToHms(500) + '<br>');
Run Code Online (Sandbox Code Playgroud)

  • 你可以使用moment.js:`moment().startOf('day').seconds(16.4534).format('HH:mm:ss')` - 就这么简单. (5认同)
  • 我喜欢这个答案的简单性,但我将它与[这个答案](http://stackoverflow.com/a/6313008/396381)相结合,将前两行修改为`Number.prototype.toHHMMSS = function(){d =这个;`使它更简洁. (2认同)
  • 如果秒 == 0,则返回 0:00,而不是我期望的 00:00:00 (2认同)