我的脚本接收“时间”值,但格式各种各样:
100
0143
0015
1127
1300
1230
2258
etc...
我正在尝试找到一种方法将其转换为始终为4位数,然后在第二位和第三位之间包含一个冒号。例如:
100 becomes 01:00
0143 becomes 01:43
0015 becomes 00:15
2258 becomes 22:58 etc
有人可以建议最好的方法吗?
我正在考虑向后工作,剥去最后两位数字,前面加上:并在需要时填充其余数字。
但这似乎不对!
由于
更新..
这似乎有效:
var time = ("0000" + timer).slice(-4)
time = time.substr(0,2) + ":" + time.substr(2);
答案 0 :(得分:2)
我个人认为您的实施没有任何问题。这很简单,并做了它应该做的事情。要插入冒号字符,您还可以使用JavaScript内置的replace()和正则表达式:
var n = 100;
('0000' + n.toString()).
slice(-4).
replace(/(\d{2})(\d{2})$/, '$1:$2'); // => '01:00'
答案 1 :(得分:1)
这是一个实现您想要的简单代码。但是您已经使用工作代码更新了您的问题,并且显然代码更好,更紧凑。
// This code is only for demo
var timeStrings = ["100", "0120", "2354" ];
timeStrings.forEach(function( timeString ){
console.log( returnFormattedTime( timeString ) );
});//forEach()
// here is the function that formats these time strings
function returnFormattedTime( timeString ){
// pad with zero first if required
var unformattedTime = timeString;
var numZeroes = 4 - unformattedTime.length;
if( numZeroes > 0 ){
var zeroPadding = "";
for( var i = 0; i < numZeroes; i++ ){
zeroPadding += "0";
}//for()
unformattedTime = zeroPadding + unformattedTime;
}//if()
var formattedTime = unformattedTime[0]+unformattedTime[1]+":"+unformattedTime[2]+unformattedTime[3];
return formattedTime;
}//returnFormattedTime()
&#13;