日期:2014-05-17  浏览次数:20528 次

php+js 倒计时 几秒之后 不动了
之前弄了一个倒计时代码 有两个问题
1. 刷新之后 倒计时还是挺顺的 但是等个半分钟,倒计时就开始卡 然后就不动了,这是为什么?
2. 卡了之后再点刷新,网页没反应,除非把这个页面关了 重新打开,然后重复第一个问题。。

代码如下:
PHP code

<script language="JavaScript">
function getTheTime(D,i){
     var theDate=new Date(D);
     var date = new Date();
     var diffTime = theDate - date;
     //if(diffTime<=0){
      //document.getElementById("diffDay2"+i) .innerHTML="时间已过.";
      //return;
     //}
     var para = 1000 * 60 * 60 * 24;
     var diffday = diffTime / para;
     var diffHour = (diffTime % para) / 3600000;
     var diffMinute = (diffTime % 3600000 ) / 60000;
     var diffSecond = (diffTime % 60000) / 1000;
     //document.getElementById("diffDay1"+i).innerHTML = "<b>"+Math.floor(diffday)+ "</b>" + "天 ";
     document.getElementById("h_diffDay2"+i).innerHTML = Math.floor(diffHour);
     document.getElementById("m_diffDay2"+i).innerHTML = Math.floor(diffMinute);
     document.getElementById("s_diffDay2"+i).innerHTML = Math.floor(diffSecond);
     
     
     setInterval("getTheTime('" + D + "'," + i + ")", 1000); 
}
</javascript>


<table style="width:80%; margin:auto" border="0">
<tr><td class="txt_d_cd" style="color:#d34836">Deadline</td><td class="txt_d_cd" colspan="3">Countdown For <strong style="color:#d34836">Dinner</strong></td></tr>
<?php
$query="SELECT * FROM PICKUPTIME ORDER BY deadline ASC";
$sql=queryMysql($query);
$i=0;
while($info=mysql_fetch_array($sql))
{
    $deadline_dinner=$info['deadline'];
    if($info['deadline'] == "") continue;
    //echo $info['deadline'];
    $time_hr=substr($deadline_dinner, 0, 2);
    $time_min=substr($deadline_dinner, 2, 4);
    $pickup_time_formatted=$time_hr.":".$time_min;
    //$c_date=date("Y-m-d");
    $deadline=date("Y-m-d")." "."$pickup_time_formatted";
    $current_time=date("Y-m-d H:i:s");
    if($deadline<$current_time)
    {
        $deadline=date("Y-m-d", strtotime('+1 day'))." "."$pickup_time_formatted";
        $dinner_notice="TOMORROW";
    }
    else
    {
        $dinner_notice="TODAY";
    }
    //echo "$deadline";

?>
                <tr>
                    <td class="txt_d_cd"><?php echo "$dinner_notice $pickup_time_formatted"; ?></td>
                    <td class="txt_cd"><strong id="h_diffDay2<?php echo $i;?>"></strong>h</td>
                    <td class="txt_cd"><strong id="m_diffDay2<?php echo $i;?>"></strong>m</td>
                    <td class="txt_cd"><strong id="s_diffDay2<?php echo $i;?>"></strong>s</td>
                </tr>
                
                <script type="text/javascript">
                        getTheTime("<?php echo $deadline;?>",<?php echo $i;?>);
                    </script> 
<?php
    $i++;
}
?> 

</table>




------解决方案--------------------
我之前做过类似东西,好像还可以搜索到