2016-04-03 108 views
0

我有一个倒数计时器来隐藏div,然后显示另一个div。我已经很好地完成了这一点,但我想将秒转换成分钟和小时。将倒计时秒数转换为小时

我该怎么做?

预先感谢任何人回答我的问题...

这是我的代码:

var countDown = 9000; 
 
var i = setInterval(function() { 
 
    
 
    var b1 = document.getElementById('box1'); 
 
    var b2 = document.getElementById('box2'); 
 
    
 
    
 
    if(countDown === 1) { 
 
    if(b1['style'].display == 'none') { 
 
     b1['style'].display = 'block'; 
 
     b2['style'].display = 'none'; 
 
    } else { 
 
     b1['style'].display = 'none'; 
 
     b2['style'].display = 'block'; 
 
    } 
 
    clearInterval(i); 
 
    } 
 
    countDown--; 
 
    b1.innerHTML = countDown; 
 

 
}, 1000);
<!DOCTYPE html> 
 
<html> 
 

 
    <head> 
 
    <link rel="stylesheet" href="style.css"> 
 
    <script src="script.js"></script> 
 
    </head> 
 

 
    <body> 
 
    <div id="box1">9000</div> 
 

 
    <div style="display:none" id="box2">div2</div> 
 
    
 
    </body> 
 

 
</html>

+0

我想显示的倒计时结果就像hh:mm:ss而不是9000秒...... –

回答

1

例子:https://jsfiddle.net/306qtxot/4/

你可以使用这个jQuery :

var countDown = 9000; 
var i = setInterval(function() { 

    var b1 = document.getElementById('box1'); 
    var b2 = document.getElementById('box2'); 


    if(countDown === 1) { 
    if(b1['style'].display == 'none') { 
     b1['style'].display = 'block'; 
     b2['style'].display = 'none'; 
    } else { 
     b1['style'].display = 'none'; 
     b2['style'].display = 'block'; 
    } 
    clearInterval(i); 
    } 
    countDown--; 

    //This section convert "seconds" to hour And minute And second 
    var hour=Math.floor(countDown/3600); 
    var min=Math.floor(countDown%3600/60); 
    var sec=Math.floor(countDown%3600%60); 

    //Format : hh:mm:ss 
    b1.innerHTML = (hour=hour<10?"0"+hour:hour) + " : " + (min=min<10?"0"+min:min) + " : " + (sec=sec<10?"0"+sec:sec); 

}, 1000); 
+1

只需在最后一行之前添加这些行即可。 'if(hour <10)hour =“0”+ hour; (min <10)min =“0”+ min; if(sec <10)sec =“0”+ sec;' – qmaruf

+0

@qmaruf这是最好的解决方案 –

+0

非常感谢。它工作得很好。 真诚感谢。 –