有结束时间enddate和开始时间startdate , $between = enddate - startdate 就是倒计时的时间 怎么把$between 做成倒计时? 我用js写了一个但是更改电脑的时间就不乱了,再次刷新页面时,倒计时又重新开始了,求思路,有代码更好,就这个问题搞了一天了,发现自已二的不行<?php
//php的时间是以秒算。js的时间以毫秒算
date_default_timezone_set("Asia/Hong_Kong");//地区
//配置每天的活动时间段
$starttimestr = date('Y-m-d H:m:s',time());
$endtimestr = "2012-6-27 23:00:00";$starttime = strtotime($starttimestr);
$endtime  = strtotime($endtimestr);
$lefttime = $endtime-$starttime;  //实际剩下的时间(秒)
?>
<script language="JavaScript">
var overDate = <?php echo $lefttime;?>*1000;//截止时间
var NowTime = new Date();
var EndTime= new Date(NowTime.getTime() + overDate);function GetRTime()
{
 NowTime = new Date();
 var nMS=EndTime.getTime() - NowTime.getTime();
 var nH=Math.floor(nMS/(1000*60*60));
 var nM=Math.floor(nMS/(1000*60)) % 60;
 var nS=Math.floor(nMS/1000) % 60;
 var nMS=Math.floor(nMS/100) % 10;
 if(nH>= 0){
  document.getElementById("RemainH").innerHTML=nH;
  document.getElementById("RemainM").innerHTML=nM;
  document.getElementById("RemainS").innerHTML=nS;
  //document.getElementById("RemainS").innerHTML=nS + "." + nMS;
 }
 else {
  document.getElementById("CountMsg").innerHTML= "已过!";
 }
}setInterval("GetRTime()",100);
</script>
</head><body>
<div id="CountMsg">
    <strong id="RemainH">XX</strong>时
    <strong id="RemainM">XX</strong>分
    <strong id="RemainS">XX</strong>秒
</div></body>

解决方案 »

  1.   

    我用js写了一个但是更改电脑的时间就不乱了,再次刷新页面时,倒计时又重新开始了1.可以用js 读取服务器时间进行较对
    2.同样可以用js读取服务器时间,当然需要做一个延时误差的较对.如果不是很精确的,可以忽略不计.
      

  2.   

    你通过客户端getTime所以才会被客户端的时间所影响
    我建议PHP生成时间戳然后JS用这个时间戳生成NowTime,setInterval里NowTime根据自减的PHP时间戳参数再生成.而不是继续getTime..
      

  3.   

    $starttimestr = date('Y-m-d H:m:s',time());
      改成
    $starttimestr = date('Y-m-d H:i:s');
      

  4.   

    //配置每天的活动时间段
    $end = "19:00:00";$starttime = time();
    $endtime  = strtotime(date("Y-m-d $end"));
    $lefttime = $endtime-$starttime;  //实际剩下的时间(秒)这样比较妥当些
      

  5.   


    但是你改一下你系统的时间,这样虽然并不能修改服务端的时间.问题是一旦客户端的时间出了错误的话就影响用户体验了.所以我就说通过服务端返回时间戳来进行倒计时而不是在客户端getTime,他的倒计时是正确的,只是获取时间的对象放在客户端上
      

  6.   

    js代码秒杀很多的。楼主可以参考下。memcache去进行秒杀处理。