为了账号安全,请及时绑定邮箱和手机立即绑定

当我把时间调整到很接近时,运行结果一直在闪烁

当我把时间调整到很接近时,运行结果一直在闪烁,在“团购已结束”和“0天。。。”之间闪烁,这是怎么回事?

<script>

function FreshTime()

{

        var endtime=new Date("2016/9/18,10:33:12");//结束时间

        var nowtime = new Date();//当前时间

        var lefttime=parseInt(endtime.getTime()-nowtime.getTime())/1000; 

        d= parseInt(lefttime/(24*60*60));

        h= parseInt(lefttime/(60*60)%24);

        m= parseInt(lefttime/60%60);

        s= parseInt(lefttime%60);

       

        document.getElementById("LeftTime").innerHTML=d+"天"+h+"小时"+m+"分"+s+"秒";

        if(lefttime<=0){

        document.getElementById("LeftTime").innerHTML="团购已结束";

        clearInterval(sh);

        }

}

   FreshTime();

   var sh;

   sh=setInterval(FreshTime,1000);

</script>


正在回答

3 回答

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" language="JavaScript">
            window.onload = function(){
                setTime();
                }
            function checkTime(t){
                if(t<10){
                    t="0"+t;
                }
                return t;
            }
            function setTime(){
                var nowTime = new Date();                //当前系统时间
                var endTime = new Date("2016/09/18,16:53:00"); // 结束时间
                var chaTime = parseInt((endTime.getTime() - nowTime.getTime())/1000);//获取时间戳   getTime()将时间戳处理成毫秒数
                
                var d = Math.floor(chaTime/(24*60*60));  //天
                var h =    Math.floor((chaTime/(60*60))%24);//时
                var m = Math.floor((chaTime/(60))%60);   //分
                var s = Math.floor(chaTime%60);             //秒
                    m = checkTime(m);
                    s = checkTime(s);
                
                if(chaTime<=0){
                    document.getElementById("showTime").innerHTML="团购结束";    
                }else{
                    document.getElementById("showTime").innerHTML=
                "距离10月1号还剩"+d+"天"+h+"时"+m+"分"+s+"秒";
                clearInterval(sh);//清除计时器
                }
                var sh;
                sh=setTimeout(setTime,500);  
            }
        </script>
    </head>
    <body>
        <span id="showTime" style="color: red;"></span>
    </body>
</html>

        我是初学者,不清楚你的什么原因,复制你的代码,但是获取ID时显示其innerHTML为null,懒得去调试了,给你看看我的代码,我的没问题,自己参照下呗。

0 回复 有任何疑惑可以回复我~
#1

叫我疯子 提问者

今天重新粘贴上去结果有没有闪烁,不知道是不是慕课网的bug... 不过还有好多细节没有处理 var lefttime=parseInt(endtime.getTime()-nowtime.getTime())/1000; 这句我掉了个括号;倒数第三行FreshTime();也不需要;感谢你的回答。
2016-09-19 回复 有任何疑惑可以回复我~
#2

折翼天使I 回复 叫我疯子 提问者

缓存问题
2016-11-10 回复 有任何疑惑可以回复我~

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" language="JavaScript">
            var sh;
            window.onload = function(){
                setTime();
            }
            function checkTime(t){
                if(t<10){
                    t="0"+t;
                }
                return t;
            }
            function setTime(){
                var nowTime = new Date();                //当前系统时间
                var endTime = new Date("2016/10/01,00:00:00"); // 结束时间
                var chaTime = parseInt((endTime.getTime() - nowTime.getTime())/1000);//获取时间戳   getTime()将时间戳处理成毫秒数
                
                var d = Math.floor(chaTime/(24*60*60));  //天
                var h =    Math.floor((chaTime/(60*60))%24);//时
                var m = Math.floor((chaTime/(60))%60);   //分
                var s = Math.floor(chaTime%60);             //秒
                    m = checkTime(m);
                    s = checkTime(s);
                
                if(chaTime<=0){
                    document.getElementById("showTime").innerHTML="团购结束";    
                }else{
                    document.getElementById("showTime").innerHTML=
                "距离10月1号还剩"+d+"天"+h+"时"+m+"分"+s+"秒";
                clearInterval(sh);//清除计时器
                }
                sh=setTimeout(setTime,500);  
            }
                var start = function(){
                sh=setTimeout(setTime,500);     
                }
                var stop = function(){    
                    clearInterval(sh);      
                }  
        </script>
    </head>
    <body>
        <span id="showTime" style="color: red;"></span>
        <input type="button" value="停止倒计时"  onclick="stop()"/>
        <input type="button" value="开始倒计时"  onclick="start()"/>
    </body>
</html>

         加了一个开始倒计时和结束倒计时的效果。。。

0 回复 有任何疑惑可以回复我~

123

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
倒计时效果
  • 参与学习       55625    人
  • 解答问题       242    个

电商网站限时抢购倒计时效果计算思路和方法,前端开发必备技术

进入课程

当我把时间调整到很接近时,运行结果一直在闪烁

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信