本程序包含多个文件来讲解,当然你也可以根据实际情况进行合并。
index.html(非必须):首页显示,时间设定,测试的时候可以直接在文件里指定时间。
gettime.php(主要文件1):实时倒计时状态显示
gettime2.php(主要文件2):gettime每1秒请求一次的文件,返回此刻请求得到的数据
源码如下:
/** index.html **/ <!-- 下面的JS代码是一个简单的对输入时间检测的脚本,可以不要--> <form action="gettime.php" method="post"> 请输入活动开始时间:<input id="hour" type="text" name="hour" size="2" />点<input id="min" type="text" name="min" size="2" />分<input id="sec" type="text" name="sec" size="2" />秒 <input type="submit" value="设定" /> </form> <script type="text/javascript"> window.onload=function(){ var hour = document.getElementById(‘hour‘); hour.onblur=function(){ if(hour.value>23||hour.value<0){ alert(‘时间超出范围‘); return false; } } var min = document.getElementById(‘min‘); min.onblur=function(){ if(min.value>59||min.value<0){ alert(‘时间超出范围‘); return false; } } var sec = document.getElementById(‘sec‘); sec.onblur=function(){ if(sec.value>59||sec.value<0){ alert(‘时间超出范围‘); return false; } } } </script> /** gettime.php **/ <?php echo "设定的时间是:".$hour.":".$min.":".$sec.",活动还未开始,倒计时状态中<br />"; } ?> /** ajax请求到的数据会存放在id=‘hh‘的这个DIV里, 你也可以将返回的数据放在任何你想放的位置,只需要将它的id设置为与js里id相同即可。 注意这个脚本需要jQuery的支持(下载jq见文章结尾),所以请将jq文件引用到位。 **/ <div id="hh"></div> <script type="text/javascript" src="jquery-2.1.1.min.js"></script> <script type="text/javascript"> function gett(){ $(function(){ //接收index传过来的时间参数,并用ajax传递给gettime2.php进行判断 //测试的时候可以不需要index,直接在这里指定时间 var h=‘<?php echo $hour;?>‘; var m=‘<?php echo $min;?>‘; var s=‘<?php echo $sec;?>‘; $.ajax({ url:‘gettime2.php?h=‘+h+‘&m=‘+m+‘&s=‘+s, type:"POST", data:{action:"guesslike"}, dataType:"html", timeout:3000, cache:false, success:function(re){ $(‘#hh‘).html(re); } }) }); setTimeout("gett()",1000) } gett(); </script> /* gettime2.php 核心文件 */ <?php date_default_timezone_set("PRC"); //接收时间 $seth=$_REQUEST[‘h‘]; $seti=$_REQUEST[‘m‘]; $sets=$_REQUEST[‘s‘]; $time=time(); //echo ‘<br />当前时间是:‘.date("H:i:s" ,$time); //判断小时剩余>1 if($seth>date(‘H‘,$time)){ $h=$seth-date(‘H‘,$time); //判断分钟剩余>1 if($seti>date(‘i‘,$time)){ $i=$seti-date(‘i‘,$time); //判断秒剩余>1 if($sets>date(‘s‘,$time)){ $s=$sets-date(‘s‘,$time); }else{ $s=$sets-date(‘s‘,$time)+59; $i=$i-1; } }else{ //分钟剩余0 $i=$seti-date(‘i‘,$time)+59; $h=($h-1)>0?($h-1):0; //如果小时被借去1后等于0,则不用显示小时了 if($sets>date(‘s‘,$time)){ $s=$sets-date(‘s‘,$time); }else{ $s=$sets-date(‘s‘,$time)+59; } } if($h!=0){ echo "<br />剩余时间还有:".$h."小时".$i."分".$s."秒"; }else{ echo "<br />剩余时间还有:".$i."分".$s."秒"; } }else{ //判断小时剩余=0 $h=0; if($seti>date(‘i‘,$time)){ $i=$seti-date(‘i‘,$time); //判断秒剩余>1 if($sets>date(‘s‘,$time)){ $s=$sets-date(‘s‘,$time); }else{ $s=$sets-date(‘s‘,$time)+59; $i=$i-1; } echo "<br />剩余时间还有:".$i."分".$s."秒"; }else{ //分钟剩余0 if($sets<=date(‘s‘,$time)){ echo "活动已经开始了"; }else{ // $i=0; //分钟为0,可以显示,也可以不显示,本程序不显示 $s=$sets-date(‘s‘,$time); } if($s>=0){ echo "<br />剩余时间还有:".$s."秒"; }else return false; } } ?> ##########################END################################
以上3段源码,复制过去,文件名对应,打开index就可以看到效果。
官方源jQuery2.1.1点此下载,各位也可以自行百度下载或者官方网站去下载。
本文出自 “方向感” 博客,请务必保留此出处http://itech.blog.51cto.com/192113/1583215
原文地址:http://itech.blog.51cto.com/192113/1583215