2012-08-13 13 views
1
<script type="text/jscript"> 
function clock(){ 
    var d = new Date(); 
    var h = d.getHours(); 
    var m = d.getMinutes(); 
    var s = d.getSeconds(); 
    $('#clock').html(", "+h+"<span class='colon'>:</span>"+m+"<span class='colon'>:</span>"+s); 
// $('.colon').fadeTo(1000, .2); 
    setTimeout(clock, 1000); 
} 

單個字符前加填充0在javascript時鐘

以上是JavaScript,我用它來顯示我的Webapplication.it時鐘工作正常,但現在我想,對於任何一個數字值,該值應該在實際值之前填充0。 例如 12時15分05秒,12點15分15秒 , 12時05分10秒, 2點05分09秒

目前,它示出了這樣的: - 12:15:5, 12:15:15, 12:5:10, 2:5:9

任何幫助或建議,我如何實現這一目標。

回答

1

試試這個

var d = new Date(); 
var h = d.getHours(); 
var m = d.getMinutes(); 
var s = d.getSeconds(); 
    if (parseInt(h) < 10) 
     h = "0" + h; 
    if (parseInt(m) < 10) 
     m = "0" + m; 
    if (parseInt(s) < 10) 
     s = "0" + s; 
$('#clock').html(", " + 
     h + "<span class='colon'>:</span>" + 
     m + "<span class='colon'>:</span>" + 
     s); 
setTimeout(clock, 1000); 

只是那些h, m and s

+1

我建議增加一個基數爲'parseInt'避免JS的誤解你想要轉換什麼。 – Joseph 2012-08-13 09:02:42

1

一個簡單的 「如果低於10」 有條件應該做補充條件檢查。

if(value<10){ 
    //it must be 1 digit 
} 
2

做一個小助手功能,並稱之爲:

function pad(n) 
{ 
    return (pad < 10 ? '0' : '') + n; 
} 
0

,你可以嘗試這樣的事情,

var d = new Date(); 
var h = d.getHours(); 
h = h+''; // it will give string 
if(h.length == 1) { 
h = "0"+h 
}