注意 四舍五入.建议先 toFixed(0) 后再判断.

解决方案 »

  1.   

    <html>
    <head>
    <script type="text/javascript">
        <!--
        var duration=20444;
        var endTime = new Date().getTime() + duration;
        function interval()
        {
            var n=(endTime-new Date().getTime())/1000;
            if(n<0) return;
            document.getElementById("timeout").innerHTML = n.toFixed(0);
            setTimeout(interval, 1000);
        }
        window.onload=function()
        {
            interval();
        }
        //-->
    </script>
    </head>
    <body>
    <span id="timeout">20 </span> 
    </body>
    </html>
      

  2.   

    倒计时20秒,那第秒-1就好了,不是更简单?
    <span id="timeout"></span>
    <script type="text/javascript">
    var duration=20;
    function interval()
    {
        if(duration<0) return;
        document.getElementById("timeout").innerHTML = duration;
    duration--;
        setTimeout(interval, 1000);
    }
    window.onload=function()
    {
        interval();
    }
      

  3.   

    原因是javascript的interval并不准确,而且程序有执行时间
    document.write(new Date().getTime());
    //do somethingsetTimeout(fucntion(){
      document.write(new Date().getTime());
    },1000);两次的输出值不一定整差1000,中间还有执行时间