每X秒增加1

时间:2016-02-26 11:37:48

标签: javascript counter setinterval increment

我试图编写一个代码,类似于自2016年初以来有多少人出生在乡村X.我没有多少编码经验,这就是我&#39我们出来了。哪里' d'现在和' b'是Unix时间到2016年1月1日之前的毫秒数。我的主要问题是,当页面加载时,计数器不会立即出现,但需要12秒才能显示计数。

有没有更简单的方法来执行此操作并立即加载数字? 谢谢!

<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>

2 个答案:

答案 0 :(得分:0)

问题是,在{12}达到最初的12秒延迟之前increment未调用setInterval,并且在调用innerHTML之前未设置increment

一种解决方案是在x具有适当的值后将innerHTML分配给x ...

<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>

答案 1 :(得分: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>