我一直在构建倒数计时器,我想知道我是否可以替换此代码:
if( daysLeft< 10){
daysLeft = "0" + daysLeft;
}
if( hoursLeft< 10){
hoursLeft = "0" + hoursLeft;
}
if( minutesLeft< 10){
minutesLeft = "0" + minutesLeft;
}
if( secondsLeft< 10){
secondsLeft = "0" + secondsLeft;
}
用更合适的东西(更好)。 小提琴: http://jsfiddle.net/U7R6W/6/ 谢谢!
答案 0 :(得分:3)
干嘛:
function zeroPad(number)
{
if (number < 10)
return ("0" + number);
return (number.toString());
}
然后在您需要的地方使用zeroPad
。
此方法在每种情况下都返回一个String以保持一致性。
答案 1 :(得分:2)
创建一个函数来执行此操作:
function addLeadingZero(i) {
if(i < 10)
return "0" + i;
return i;
}
然后像这样使用它:
var x = 5;
var result = addLeadingZero(x);
答案 2 :(得分:2)
无论增强原型是否有坏的论点,一个有效的解决方案是:
Number.prototype.twoDigitString = function(){
return this<10?"0"+this:""+this.toString();
}
然后你就可以这样做:
secondsLeft.twoDigitString();
minutesLeft.twoDigitString();
获取格式化的输出。
答案 3 :(得分:1)
尝试
String.prototype.leftPad = function() {
var final = (this.length>1) ? this : "0" + this;
return final.toString();
}
"2".leftPad(); // return "02"
"22".leftPad(); // return "22"