每 X 秒增加 1

Increase by 1 every X seconds

我正在尝试编写一个代码来计算自 2016 年初以来有多少人在某个国家/地区出生。我没有太多编码经验,这就是我得出的结果和。其中 '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>

问题是 increment 在达到最初的 12 秒延迟之前不会被 setInterval 调用,而你的 innerHTML 直到 increment 才被设置打电话。

一个解决方案是一旦 x 具有适当的值就将 x 分配给 innerHTML...

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

在初始化时设置 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>