2013-03-08 54 views
0

我做了JavaScript的一個簡單的倒計時,在這裏你可以看到一個例子:http://jsfiddle.net/PCwx8/的JavaScript如果數<10加一個「0」

它只是今天計數到午夜。我的問題是,我只是想的JavaScript前面加上一個「0」,即小於10我有這樣一個想法的數字:

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

但我不知道它是否是一個整體或者只是一個數?感謝您的幫助,我通常與JavaScript無關,所以請理解!

+0

有啥問題?你給出的代碼是正常的解決方案(儘管它通常包含在一個小函數中,所以你可以調用相同的邏輯幾個小時,幾分鐘和幾秒鐘)。 – Alnitak 2013-03-08 14:18:56

+0

我向你展示的代碼不適用!我如何將它插入我的小提琴示例中? – 2013-03-08 14:19:37

+1

好吧,你把代碼放在一個函數中,讓它叫做pad,然後調用'seconds = pad(seconds);'。如果你還沒有試圖整合代碼,你怎麼能聲稱它不起作用? – 2013-03-08 14:23:15

回答

2

字符串你可以編寫和使用這樣的功能:

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

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

+0

三元運算符是一件美麗的事情。 – jmeas 2013-03-08 14:30:24

1

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

請參閱DEMO

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); 
+1

我不喜歡這個解決方案。你首先添加一些東西,然後在大部分時間再次刪除它... – Fortega 2013-03-08 14:27:16

+0

有時我有upp三個數字!例如,當我數一年的日子!但是,謝謝 – 2013-03-08 14:29:09

0

JS將幾乎可以肯定解析"0"爲整數,並添加零i。繁瑣的工作,但有一點是:

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

的訣竅是,要確保,即i將成爲一個字符串。類似製作的整數,numericalStringvar * 1

+2

不,如果一個操作數是一個字符串,則會執行字符串連接。 – 2013-03-08 14:24:18

+0

當我嘗試這個代碼時,它什麼都沒顯示! – 2013-03-08 14:25:28

+0

是的,在控制檯中試試吧。 「0」+1去「01」 – 2013-03-08 14:25:31

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's bindleadzero可以以這種方式進行的環境是:

var leadzero = lead.bind(null, "00"); 
相關問題