2016-02-26 56 views
0

我正在尝试编写一个代码,这个代码包含了自2016年初以来在X国出生的人数。我没有太多编码经验,这就是我已经出来了。在Unix时间里,'d'现在和'b'是直到2016年1月1日的毫秒数。我的主要问题是,当页面加载时,计数器不会立即显示,而是需要12秒才能显示计数。每X秒增加1

有没有更简单的方法来做到这一点,并立即加载数字? 谢谢!

<span id="number"></span> 
<script type="text/javascript"> 
    var d = new Date(); 
     document.getElementById('number').innerHTML = d.getTime(); 
    var b = 1451606400000; 
    var i = ((d - b)/12024); 
    var x = Math.round(i); 
    function increment() { 
     x++; 
     document.getElementById('number').innerHTML = x; 
    } 
    setInterval('increment()', 12024); 
</script> 

回答

0

x而不是d在初始化:

var d = new Date(); 
 
var b = 1451606400000; 
 
var i = ((d - b)/12024); 
 
var x = Math.round(i); 
 
document.getElementById('number').innerHTML = x; // Here 
 
function increment() { 
 
    x++; 
 
    document.getElementById('number').innerHTML = x; 
 
} 
 
setInterval(increment, 12024);
<span id="number"></span>

+0

解决了!惊人!非常感谢!!这是非常有用的,非常快。 –

+0

@DanielS没问题! – Ties

0

的问题是,increment没有被setInterval调用,直到达到最初12秒的延迟,你的innerHTML没有设置直到increment被调用。

一个解决办法是分配给x一次innerHTMLx适当的值...

<script type="text/javascript"> 
    var d = new Date(); 
    var b = 1451606400000; 
    var i = ((d - b)/12024); 
    var x = Math.round(i); 
    document.getElementById('number').innerHTML = x; 
    function increment() { 
     x++; 
     document.getElementById('number').innerHTML = x; 
    } 
    setInterval(increment, 12024); 
</script> 
+0

解决!惊人!非常感谢!!这是非常有用的,非常快。 –

+0

很高兴我能帮到@DanielS :) – sfletche