JavaScript 秒到时间字符串,格式为 hh:mm:ss

新手上路,请多包涵

我想将持续时间(即秒数)转换为以冒号分隔的时间字符串(hh:mm:ss)

我在这里找到了一些有用的答案,但他们都在谈论转换为 x 小时和 x 分钟格式。

那么是否有一个小片段可以在 jQuery 或原始 JavaScript 中执行此操作?

原文由 medk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 967
2 个回答
String.prototype.toHHMMSS = function () {
 var sec_num = parseInt(this, 10); // don't forget the second param
 var hours = Math.floor(sec_num / 3600);
 var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
 var seconds = sec_num - (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;
 }

您现在可以像这样使用它:

 alert("5678".toHHMMSS());

工作片段:

 String.prototype.toHHMMSS = function () {
 var sec_num = parseInt(this, 10); // don't forget the second param
 var hours = Math.floor(sec_num / 3600);
 var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
 var seconds = sec_num - (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;
 }

 console.log("5678".toHHMMSS());

原文由 powtac 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 JS Date 方法的帮助下,您可以在没有任何外部 JS 库的情况下设法做到这一点,如下所示:

 var date = new Date(0);
date.setSeconds(45); // specify value for SECONDS here
var timeString = date.toISOString().substring(11, 19);
console.log(timeString)

原文由 Harish Ambady 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题