本程序包含多个文件来讲解,当然你也可以根据实际情况进行合并。
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点此下载,各位也可以自行百度下载或者官方网站去下载。