js网页时钟总是快一秒

var inp = document.getElementsByTagName("input"); //不应该用input的,没有意义,用span就挺好
change();
function change(){

var now = new Date();
inp[0].value = ((now.getHours()).toString()).replace(/^(\d)$/,"0$1");
inp[1].value = ((now.getMinutes()).toString()).replace(/^(\d)$/,"0$1");
inp[2].value = ((now.getSeconds()).toString()).replace(/^(\d)$/,"0$1");
setInterval(function (){change()},1000);
};

比实际时间快了一秒……

setInterval(function (){change()},1000); 这个只要调用一次就可以,本身不要再放在定时器里了。

<script>
    setInterval(function (){change()},1000); 
    function change(){
        var sp = document.getElementById("span")
        var now = new Date();
        var hour = ((now.getHours()).toString()).replace(/^(\d)$/,"0$1");
        var min = ((now.getMinutes()).toString()).replace(/^(\d)$/,"0$1");
        var sec = ((now.getSeconds()).toString()).replace(/^(\d)$/,"0$1");
        sp.innerHTML=hour+'-'+min+'-'+sec;
    };
</script>
<span id="span"></span>