1

我用 JavaScript 做了一个简单的倒计时,在这里你可以看到一个例子:http: //jsfiddle.net/PCwx8/

它只是算到今天的午夜。我的问题是我只是希望 JavaScript 在小于 10 的数字前面加上一个“0”。我有一个想法:

if (i<10)
{
    i="0" + i;
 }
return i;

但我不知道它是一个整数还是一个数字?感谢您的帮助,我通常与JavaScript无关,所以请理解!

4

5 回答 5

2

您可以编写和使用这样的函数:

function addZeroIfNeeded(val){
    return val < 10 ? "0" + val : val;   
}

检查http://jsfiddle.net/VafZ7/

于 2013-03-08T14:25:53.323 回答
1

使用("0" + seconds).slice(-2).

演示

document.getElementById("seconds").innerHTML= ("0" + seconds).slice(-2);
document.getElementById("hours").innerHTML= ("0" + hours).slice(-2);
document.getElementById("days").innerHTML= ("0" + days).slice(-2);
document.getElementById("minutes").innerHTML= ("0" + minutes).slice(-2);
于 2013-03-08T14:23:19.063 回答
1

给你:http: //jsfiddle.net/PCwx8/3/

var seconds = 60-aseconds;
if(parseInt(seconds,10) <10){
    seconds = "0"+seconds;
}
于 2013-03-08T14:28:27.833 回答
0

JS 几乎肯定会将 解析"0"为整数并将 0 添加到i. 有点麻烦但工作如下:

var i = 0;
if (i < 10) {
    i = "0" + ("" + i);
}
return i;

诀窍是,确保这i将成为一个字符串。类似于使整数成为字符串numericalStringvar * 1

于 2013-03-08T14:23:51.873 回答
0

不确定问题是什么,但是您可以用类似的方法进行概括:

function lead(str, num) {
    return (str + num).slice(-str.length);
}

function leadzero(num) {
    return lead("00", num);
}

console.log(leadzero(2)) // 02
console.log(leadzero(10)) // 10

当然,如果你在一个支持ECMAScript5 的 bind的环境中,leadzero可以这样完成:

var leadzero = lead.bind(null, "00");
于 2013-03-08T14:29:05.047 回答