jQuery格式编号为4位数字,包括结肠



我的脚本收到了时间的值',但以各种格式:

    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

任何人都可以建议这样做的最佳方法吗?

我正在考虑向后工作,剥离最后2位数字,并在需要时添加剩余的时间。

但这似乎是错误的!

谢谢

更新..

这似乎有效:

var time = ("0000" + timer).slice(-4)
time = time.substr(0,2) + ":" + time.substr(2);

我个人认为您的实现没有错。它很简单,可以做应该做的事情。要插入结肠字符,您还可以使用JavaScript的内置替换()和正则表达式:

var n = 100;
('0000' + n.toString()).
  slice(-4).
  replace(/(d{2})(d{2})$/, '$1:$2');   // => '01:00'

这是一个简单的代码,可以实现所需的目标。但是您已经通过工作代码更新了问题,并且显然代码要好得多,紧凑。

// 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()

最新更新