ajax获取服务器时间,实现PHP活动倒计时效果

html部分代码

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<script type="text/javascript">
//ajax函数请求time.php数据
	function loadDoc(){
		var xmlhttp;
		if(window.XMLHttpRequest){
		xmlhttp=new XMLHttpRequest();
		}else{
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");	
			}
		xmlhttp.onreadystatechange=function(){
			if(xmlhttp.readyState==4 && xmlhttp.status==200){
				document.getElementById("timeDiv").innerHTML=xmlhttp.responseText;
				}
		}
		xmlhttp.open("GET","time.php",true);
		xmlhttp.send();
			}
//self.setInterval()周期执行ajax函数获取服务器时间,执行周期500毫秒
		var int=self.setInterval("loadDoc()",500);
</script>
<head>
<body>
 <div class="top_time">
    <fieldset>
      <legend>距离活动结束还有</legend>
      <div id="timeDiv" class="com_margin com_margintop"></div>
    </fieldset>
  </div>
</body>
</html>

  

time.php代码:

//使用时间函数值钱先设置时区
date_default_timezone_set("Asia/Shanghai");
//获取当前时间戳
    $time1=time();
//获取活动时间结束时间戳
    $time2=mktime(23,0,0,11,20,2017);
//获取当前时间到活动结束时间时间戳的差值
    $time3=$time2-$time1;
//计算距离活动结束的倒计时天数
    $day=($time3-($time3%(24*3600)))/(24*3600);
//计算距离活动结束的倒计小时数
    $hour=($time3%(24*3600)-(($time3%(24*3600))%3600))/3600;
//计算距离活动结束的倒计时分钟数
    $minute=((($time3%(24*3600))%3600)-((($time3%(24*3600))%3600)%60))/60;
//计算距离活动结束的倒计时秒数
    $second=($time3%(24*3600)%3600)%60;
//获取数值进行转化成字符串
    $day=(string) $day;
    $hour=(string) $hour;
    $minute=(string) $minute;
    $second=(string) $second;
//变量用于存储前台ajax需要获取的数值
    $strTime="";
//通过compact函数把计算得到的变量合成数组,并以变量名为键值钱
    $arrTime=compact('day','hour','minute','second');
//拼接$strTime的值
    foreach($arrTime as $key=>$value){
        switch ($key){
            case 'day' :
            if(strlen($value)==2){
                $strTime=$strTime.'<span>'.$value[0].'</span><span>'.$value[1].'</span>天&nbsp;&nbsp;';
                }else{
                $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>天&nbsp;&nbsp;';
                    }
            break;
            
            case 'hour' :
            if(strlen($value)==2){
                $strTime=$strTime.'<span>'.$value[0].'</span><span>'.$value[1].'</span>时&nbsp;&nbsp;';
                }else{
                $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>时&nbsp;&nbsp;';
                    }
            break;
            
            case 'minute' :
            if(strlen($value)==2){
                $strTime=$strTime.'<span>'.$value[0].'</span><span>'.$value[1].'</span>分&nbsp;&nbsp;';
                }else{
                $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>分&nbsp;&nbsp;';
                    }
            break;
            
            case 'second' :
            if(strlen($value)==2){
                $strTime=$strTime.'<span>'.$value[0].'</span><span>'.$value[1].'</span>秒&nbsp;&nbsp;';
                }else{
                $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>秒';
                    }
            break;
            
            default :
            echo "false!";
            break;
            }
        }
//用于ajax获取
    echo $strTime;

 

posted @ 2017-11-09 12:30  Double Two  阅读(436)  评论(2编辑  收藏  举报