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>天 '; }else{ $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>天 '; } break; case 'hour' : if(strlen($value)==2){ $strTime=$strTime.'<span>'.$value[0].'</span><span>'.$value[1].'</span>时 '; }else{ $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>时 '; } break; case 'minute' : if(strlen($value)==2){ $strTime=$strTime.'<span>'.$value[0].'</span><span>'.$value[1].'</span>分 '; }else{ $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>分 '; } break; case 'second' : if(strlen($value)==2){ $strTime=$strTime.'<span>'.$value[0].'</span><span>'.$value[1].'</span>秒 '; }else{ $strTime=$strTime.'<span>0</span><span>'.$value[0].'</span>秒'; } break; default : echo "false!"; break; } } //用于ajax获取 echo $strTime;