从网上找的这段代码 运行之后 秒 是不动的  为什么?<script type="text/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("diffDay2"+i).innerHTML = Math.floor(diffHour) + "小时" + Math.floor(diffMinute) + "分" + Math.floor(diffSecond) + "秒";
     setTimeout("getTheTime("+D+","+i+")",1000);     
     //document.getElementById("test_date").innerHTML = theDate;
     //document.getElementById("test_date_1").innerHTML = date;
}
</script> 
<?php
include_once '../lib/functions.php';
$db = new Connection();
$connection = $db->connect();$query="SELECT * FROM PICKUPTIME ORDER BY deadline ASC";
$sql=queryMysql($query);
?>
<?php
$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";
//echo "$deadline";?>
<div id="test_date"></div> <div style="float:left;" id="test_date"></div></br>
<div style="float:left;" id="test_date_1"></div></br>

    <div style="float:left;" id="diffDay1<?php echo $i;?>"></div>
    <div style="" id="diffDay2<?php echo $i;?>"></div>
    <script type="text/javascript">
    getTheTime("<?php echo $deadline;?>",<?php echo $i;?>);
    </script> 
<?php
    $i++;
}
?> 

解决方案 »

  1.   

    //setTimeout("getTheTime("+D+","+i+")",1000);
    setInterval("getTheTime('" + D + "'," + i + ")", 1000);
      

  2.   


    厉害啊!setInterval和setTimeout有什么区别?为什么有的用setTimeout就可以?
      

  3.   

    我弄错了,其实用setTimeout就可以了。你原先代码应该是报错了,调用时传递的参数D显然是个字符串,所以在调用时要加上引号。