我想转换时间的持续时间,即秒数,以冒号分隔的时间字符串(hh:mm:ss)
我在这里找到了一些有用的答案,但它们都谈到了转换成x小时和x分钟的格式。
那么有一个小片段,这是在jQuery或只是原始JavaScript?
我想转换时间的持续时间,即秒数,以冒号分隔的时间字符串(hh:mm:ss)
我在这里找到了一些有用的答案,但它们都谈到了转换成x小时和x分钟的格式。
那么有一个小片段,这是在jQuery或只是原始JavaScript?
当前回答
function toHHMMSS(seconds) {
var h, m, s, result='';
// HOURs
h = Math.floor(seconds/3600);
seconds -= h*3600;
if(h){
result = h<10 ? '0'+h+':' : h+':';
}
// MINUTEs
m = Math.floor(seconds/60);
seconds -= m*60;
result += m<10 ? '0'+m+':' : m+':';
// SECONDs
s=seconds%60;
result += s<10 ? '0'+s : s;
return result;
}
例子
toHHMMSS(111); "01:51" toHHMMSS(4444); "01:14:04" toHHMMSS(33); "00:33"
其他回答
以下是我的解决方案。您可以尝试下面的代码片段。
函数secToHHMM(sec) { var d = new Date(); d.setHours (0); d.setMinutes (0); d.setSeconds (0); d = new Date(d.getTime() + sec*1000); 返回d.toLocaleString (en)。分割(' ')[1]; }; alert('One hour: ' + secToHHMM(60*60));/ /“01:00:00” alert(' 1小时5分钟:' + secToHHMM(60*60 + 5*60));/ /“01:05:00” alert(' 1小时5分23秒:' + secToHHMM(60*60 + 5*60 + 23));/ /“01:05:23”
在谷歌上搜索的结果是这样的:
function secondsToTime(secs)
{
secs = Math.round(secs);
var hours = Math.floor(secs / (60 * 60));
var divisor_for_minutes = secs % (60 * 60);
var minutes = Math.floor(divisor_for_minutes / 60);
var divisor_for_seconds = divisor_for_minutes % 60;
var seconds = Math.ceil(divisor_for_seconds);
var obj = {
"h": hours,
"m": minutes,
"s": seconds
};
return obj;
}
你可以使用moment .js的moment-duration-format插件:
Var秒= 3820; Var duration =时刻。持续时间(秒,“秒”); Var format = duration.format("hh:mm:ss"); console.log(格式化);/ / 01:03:40 <!——Moment.js库——> .js库 < script src = " https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js " > < /脚本> <!——moment-duration-format插件——> < script src = " https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js " > < /脚本>
看看这把小提琴
正则表达式可以用来匹配Date对象的toString()方法返回的字符串中的时间子字符串,该字符串的格式如下:“Thu Jul 05 2012 02:45:12 GMT+0100 (GMT夏令时)”。请注意,此解决方案使用自epoch以来的时间:1970年1月1日午夜。这个解决方案可以是一行代码,不过将其拆分会更容易理解。
function secondsToTime(seconds) {
const start = new Date(1970, 1, 1, 0, 0, 0, 0).getTime();
const end = new Date(1970, 1, 1, 0, 0, parseInt(seconds), 0).getTime();
const duration = end - start;
return new Date(duration).toString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
}
块上的字符串有一个新方法:padStart
const str = '5';
str.padStart(2, '0'); // 05
下面是一个示例用例:用4行JavaScript编写YouTube持续时间