| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 703 人关注过本帖
标题:请求各位帮我改一下这个倒计时代码
只看楼主 加入收藏
爱人别跑
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
请求各位帮我改一下这个倒计时代码
<body>
<span id="id1">2009-10-01 00:00:00</span>
<script>
            var     dt = $("id1").innerHTML;
            var     strArr  = dt.split(" ");
            var     strDay  = strArr[0].split("-");
            var     strTime = strArr[1].split(":");
            //document.write(strDay[0]+strDay[1]+strDay[2]+strTime[0]+strTime[1]+strTime[2]);
            //这个函数是倒计时
            //setInterval("djs()",1000);
         
            setInterval(showTime, 1000);

            function $(id) {
                return document.getElementById(id);
            }
            function showTime()

            {
                minutes = 1000 * 60;
                             hours   = minutes  * 60;
                             days    = hours  * 24;
                            //var years   = days * 365;                 
                             date1   = new Date();
                             date2   = new Date(Date.UTC(strDay[0], strDay[1]-1, strDay[2], strTime[0]-8, strTime[1], strTime[2]));
                             minudt  = date2 - date1;
                            //var y       = Math.floor(minudt/years);
                             d       = Math.floor(minudt/days);
                             h       = Math.floor((minudt - d * days)/hours);
                             m       = Math.floor((minudt - d * days - h * hours)/minutes);
                             s       = Math.floor((minudt - d * days - h * hours - m * minutes)/1000);
                            $('id1').innerHTML = d + "天" + h +  "时" + m + "分" + s + "秒";
            }

</script>
</body>


这个代码是我刚在这论坛找到的,这倒计时非常好,但是就是倒计时完了就开始负倒计时,
所以请各位高手帮我修改成倒计时完毕后显示“本活动已经结束”

先在谢谢了
搜索更多相关主题的帖子: 倒计时 代码 请求 
2010-05-18 19:29
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:20 
程序代码:
<body onload="showTime()">
<span id="id1">2010-05-19 13:58:00</span>
<script>
            var     dt = $("id1").innerHTML;
            var     strArr  = dt.split(" ");
            var     strDay  = strArr[0].split("-");
            var     strTime = strArr[1].split(":");
            //document.write(strDay[0]+strDay[1]+strDay[2]+strTime[0]+strTime[1]+strTime[2]);
            // 这个函数是倒计时
            //setInterval("djs()",1000);
       
          

            function $(id) {
                return document.getElementById(id);
            }
            function showTime()
            {
                minutes = 1000 * 60;
                             hours   = minutes  * 60;
                             days    = hours  * 24;
                            //var years   = days * 365;               
                             date1   = new Date();
                             date2   = new Date(Date.UTC(strDay[0], strDay[1]-1, strDay[2], strTime[0]-8, strTime[1], strTime[2]));
                          
                             minudt  = date2 - date1;
                            //var y       = Math.floor(minudt/years);
                             d       = Math.floor(minudt/days);
                             h       = Math.floor((minudt - d * days)/hours);
                             m       = Math.floor((minudt - d * days - h * hours)/minutes);
                             s       = Math.floor((minudt - d * days - h * hours - m * minutes)/1000);
                            $('id1').innerHTML = d + " 天" + h +  "时" + m + "分" + s + "秒";
                            var d1=date1.toString();
                            var d2=date2.toString();
                            //alert(d1==d2);
                                if(d1==d2)// 判断2个时间是否相等,如果相当就清除TIMEOUT!并改变显示,否则一切照旧!
                            {
                            clearTimeout(t);
                            $('id1').innerHTML =" 本活动已经结束";
                            }
                            else
                            {
                             var t=setTimeout(showTime,1000);
                             }
            }
</script>
</body>


Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-19 13:59
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
注:把<span id="id1">2010-05-19 13:58:00</span>,这里头的时间分钟数设置得比电脑时间向后设置一分钟,方便调试!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-19 14:01
爱人别跑
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-18
收藏
得分:0 
回复 3楼 gupiao175
程序代码:
<body onload="showTime()">
<span id="id1">2010-05-19 13:58:00</span>
<script>
            var     dt = $("id1").innerHTML;
            var     strArr  = dt.split(" ");
            var     strDay  = strArr[0].split("-");
            var     strTime = strArr[1].split(":");
            //document.write(strDay[0]+strDay[1]+strDay[2]+strTime[0]+strTime[1]+strTime[2]);
            // 这个函数是倒计时
            //setInterval("djs()",1000);
      
          

            function $(id) {
                return document.getElementById(id);
            }
            function showTime()
            {
                minutes = 1000 * 60;
                             hours   = minutes  * 60;
                             days    = hours  * 24;
                            //var years   = days * 365;              
                             date1   = new Date();
                             date2   = new Date(Date.UTC(strDay[0], strDay[1]-1, strDay[2], strTime[0]-8, strTime[1], strTime[2]));
                         
                             minudt  = date2 - date1;
                            //var y       = Math.floor(minudt/years);
                             d       = Math.floor(minudt/days);
                             h       = Math.floor((minudt - d * days)/hours);
                             m       = Math.floor((minudt - d * days - h * hours)/minutes);
                             s       = Math.floor((minudt - d * days - h * hours - m * minutes)/1000);
                            $('id1').innerHTML = d + " 天" + h +  "时" + m + "分" + s + "秒";
                            var d1=date1.toString();
                            var d2=date2.toString();
                            //alert(d1==d2);
                                if(d1==d2)// 判断2个时间是否相等,如果相当就清除TIMEOUT!并改变显示,否则一切照旧!
                            {
                            clearTimeout(t);
                            $('id1').innerHTML =" 本活动已经结束";
                            }
                            else
                            {
                             var t=setTimeout(showTime,1000);
                             }
            }
</script>
</body>

大哥首先谢谢你的帮助,
但是不能防刷新!能否在麻烦一下大哥帮帮忙呢
2010-05-19 14:16
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
什么叫防刷新??

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-19 17:49
爱人别跑
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-18
收藏
得分:0 
回复 5楼 gupiao175
就是说倒计时完毕后他会显示“本活动已经结束”,但是你要是在刷新一下,他就又开始负倒计时。我需要他倒计时完毕后,不管怎么刷新,还是显示“本活动结束”。麻烦在帮我改一下。好吗。谢谢了
2010-05-19 18:42
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
程序代码:
<body>
<input type="text" id="id1" value="本活动已经结束"/>
<input type="button" onclick="checkT()" value="倒计时"/>

 <script type="text/javascript">
            var re=/^\d+\-*\d+\-*\d+\s*\d+\:*\d+\:*\d+$/;
            var dc,flag,dt,strArr=[],strDay=[],strTime=[];
         function $(id) {return document.getElementById(id);}
   function checkT()
   {
   dc=$('id1').value;
   flag=re.test(dc);
      if(!flag)
                {
    alert("时间格式输入不正确!形如:2010-05-19 13:58:00");
    return false;
    }
    else
    {
    dt=$('id1').value;
    strArr  = dt.split(" ");
    strDay  = strArr[0].split("-");
    strTime = strArr[1].split(":");
    showTime();
    }
             }
         
         function showTime()
            {                minutes = 1000 * 60;
                             hours   = minutes  * 60;
                             days    = hours  * 24;             
                             date1   = new Date();
                             date2   = new Date(Date.UTC(strDay[0], strDay[1]-1, strDay[2], strTime[0]-8, strTime[1], strTime[2]));
      
                             minudt  = date2 - date1;
                             d       = Math.floor(minudt/days);
                             h       = Math.floor((minudt - d * days)/hours);
                             m       = Math.floor((minudt - d * days - h * hours)/minutes);
                             s       = Math.floor((minudt - d * days - h * hours - m * minutes)/1000);
                            $('id1').value = d + "天" + h +  "时" + m + "分" + s + "秒";
                            var d1=date1.toString();
       var d2=date2.toString();
           if(d1==d2)
       {
       clearTimeout(t);
       $('id1').value ="本活动已经结束";
       }
                            else
       {
        var t=setTimeout(showTime,1000);
                             }
            }
</script>
</body>
你看看这样可否,按格式在文本框里输入日期时间,之后文本框里显示:活动结束,再怎么刷新也不会变了!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-19 20:38
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
如若还有其他特殊要求或其他特殊情况,望能从我提供的那些代码为参考,自己改写,这将有助于你大大提高自己的JS水平!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-05-19 20:40
快速回复:请求各位帮我改一下这个倒计时代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076222 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved