JS倒计时要求还剩下一天是,直接跳转成0天23:59:59,这个要怎么实现,我写的会变成1天00:00:00。,需要怎么换呢

解决方案 »

  1.   

    <div id="tj"></div>
    <script type="text/javascript">
            var endtime=new Date("2013/4/20 21:59:59");//结束时间,注意格式
            var nowtime=new Date();//当前时间
            function setV(id,v){return document.getElementById(id).innerHTML=v}
            var sj=endtime.getTime()-nowtime.getTime();
            if(sj<=0){
                setV("tj","过期了");
            }else{
                function tj(){
                    if(sj<1000){
                        setV("tj","过期了");
                        clearInterval(setT);//清除定时器
                    }
                    var day = Math.floor(sj / (1000 * 60 * 60 * 24));
                    var hour = Math.floor(sj / (1000*3600)) - (day * 24);
                    var minute = Math.floor(sj / (1000*60)) - (day * 24 *60) - (hour * 60);
                    var second = Math.floor(sj / (1000)) - (day * 24 *60*60) - (hour * 60 * 60) - (minute*60);
                    var str="倒计时:"+day+"天"+("0"+hour).slice(-2)+"时"+("0"+minute).slice(-2)+"分"+("0"+second).slice(-2)+"秒";
                    setV("tj",str);
                    sj-=1000;
                }
                var setT=setInterval(tj,1000);
            }
    </script>
      

  2.   

    <div id="tj"></div>
    <script type="text/javascript">
            var endtime=new Date("2013/4/9 14:35:00");//结束时间,注意格式
            var nowtime=new Date();//当前时间
            function setV(id,v){return document.getElementById(id).innerHTML=v}
            var sj=endtime.getTime()-nowtime.getTime();
            if(sj<=0){
                setV("tj","过期了");
            }else{
                function tj(){
                    if(sj<1000){
                        setV("tj","过期了");
                        clearInterval(setT);//清除定时器
                    }
                    var day = Math.floor(sj / (1000 * 60 * 60 * 24));
                    var hour = Math.floor(sj / (1000*3600)) - (day * 24);
                    var minute = Math.floor(sj / (1000*60)) - (day * 24 *60) - (hour * 60);
                    var second = Math.floor(sj / (1000)) - (day * 24 *60*60) - (hour * 60 * 60) - (minute*60);
                    if (hour+minute+second==0){
                        //还有这别扭要求?但每天会快一秒哦
                        sj-=1000;hour=23;minute=second=59;
                    }

                    var str="倒计时:"+day+"天"+("0"+hour).slice(-2)+"时"+("0"+minute).slice(-2)+"分"+("0"+second).slice(-2)+"秒";
                    setV("tj",str);
                    sj-=1000;
                }
                var setT=setInterval(tj,1000);
            }
    </script>
      

  3.   

    谢谢大家了啊,我可以在23:59:59的时候设置停顿的,再次谢谢哈,我只要把Hour==0&&Mins==0&&Sec==0&Day>0,就搞定少一秒的问题了