php JS 倒計時(減少客戶端時間不同步時的誤差)

<?php 
$time = getdate();
//print_r($time);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<span id="Clock" style="font-weight: bold;"></span>
</body>
<script language="javascript">
var ServerDate = new Date(<?php echo $time['year'].",".($time['mon']-1).",".$time['mday'].",".($time['hours']+8).",".$time['minutes'].",".$time['seconds'];?>);
var ClientDate= new Date();

var d=ClientDate-ServerDate;//計算S和C之間的時差,單位毫秒
var starttime = new Date(2011,8,6,9,0,0);//開始時間
var stoptime = new Date(2011,8,6,19,0,0);//結束時間
  
function clock()
{
  var today = new Date();
  today.setTime(today.getTime()-d);//同步日期到服務器時間

  var leave=stoptime-today;

  if(leave>=1000)
  {
    var timeString="";

    var day = Math.floor(leave / (1000 * 60 * 60 * 24));
    leave-=day*(1000 * 60 * 60 * 24);
    if(day>0)timeString+=day + "天"
    
    var hour = Math.floor(leave / (1000 * 60 * 60));
    leave-=hour*(1000 * 60 * 60);
    if(hour>0)
    {
      if(timeString!="")timeString+=",";
      timeString+=hour + "小時"
    }
    
    var minute = Math.floor(leave / (1000 * 60));
    leave-=minute*(1000 * 60);
    if(minute>0)
    {
      if(timeString!="")timeString+=",";
      timeString+=minute + "分"
    }
    
    var second = Math.floor(leave / 1000);
    if(timeString!="")timeString+=",";
    timeString+=second + "秒"
    document.getElementById("Clock").innerHTML = "離活動開始還有 " + timeString;
  }
  else
  {
    if((stoptime-today)>0)
    {
    }
  }
  setTimeout("clock()", 1000);
}
clock();
</script>
</html>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章