ホームページ >バックエンド開発 >PHPチュートリアル >php+jsのカウントダウンが数秒後に停止する問題の解決策

php+jsのカウントダウンが数秒後に停止する問題の解決策

WBOY
WBOYオリジナル
2016-06-13 13:27:171211ブラウズ

php+js のカウントダウンが数秒後に停止しました
以前のカウントダウン コードには 2 つの問題がありました
1. 更新後、カウントダウンはスムーズに進みましたが、30 分後にカウントダウンがフリーズし始め、その後停止しました。何故ですか?
2. フリーズした後、[更新] をクリックすると、ページを閉じて再度開かない限り、Web ページは応答しません。その後、最初の質問を繰り返します。 。

コードは次のとおりです。

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<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>




-----解決策-------- -- ----------
以前にも似たようなことをしたことがあり、今でも
で検索すると見つかるようです
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。