function time(){
    var btn=window.document.getElementById("time");
        
        if(btn)
        {
        var now=new Date();
        var nowhours=now.getHours();
        var nowminutes=now.getMinutes();
        var nowseconds=now.getSeconds();
        if(nowseconds==59)
        {
            nowseconds=0;
            nowminutes++;
            if(nowminutes==59)
            {
                nowminutes=0;
                nowhours++;
                if(nowhours==23)
                {
                    nowhours=0;
                }
            }
        }
        else
        {
            nowseconds++;
        }
        btn.value=nowhours+":"+nowminutes+":"+nowseconds;
        }
    }
    setInterval("time()",1000);
它的运行结果比正常的要快一秒  我知道啥原因 但不知道如何解决 求解决

解决方案 »

  1.   


    function time(){
    var btn=window.document.getElementById("time");
    btn.value = new Date().toLocaleTimeString();
    }
    setInterval("time()",1000);
    这样就可以了
      

  2.   

    因为你调用time()的时候就是获取了本地时间,然后紧接着又对nowseconds++操作,所以时间肯定快了1秒
    修改的话你只要把这句改成下面这样就可以了var nowseconds=now.getSeconds() - 1;
      

  3.   

    调了一下。你的程序有问题。比如13:40:40
    nowseconds就会变成41,不知道你为什么要这样写。 function time() {
                var btn = window.document.getElementById("testButton");            if (btn) {
                    var now = new Date();
                    var nowhours = now.getHours();
                    var nowminutes = now.getMinutes();
                    var nowseconds = now.getSeconds();
    //                if (nowseconds == 60) {
    //                    nowseconds = 0;
    //                    nowminutes++;
    //                    if (nowminutes == 60) {
    //                        nowminutes = 0;
    //                        nowhours++;
    //                        if (nowhours == 24) {
    //                            nowhours = 0;
    //                        }
    //                    }
    //                }
    //                else {
    //                    nowseconds++;
    //                }
                    btn.value = nowhours + ":" + nowminutes + ":" + nowseconds;
                }
            }
            setInterval("time()", 1000);