1

我有两个我的查询影响的表。这些表称为flightSchedAlteration。在两个表中,arrivalTime列都是 TIME 类型。

查询运行良好,直到$CurrentTimePlus4Hours变量经过午夜。发生这种情况时,查询不会产生任何记录,尽管该表的数据范围涵盖白天和黑夜的所有时间。在我的代码下面找到。

$currentDay = date('l');
$CurrentTimeMinus30min = date('H:i:s', strtotime('-30 minutes'));
$CurrentTimePlus4Hours = date('H:i:s', strtotime('+240 minutes'));

$query2  = "SELECT * FROM flightSched WHERE don = '$currentDay' 
                 AND depOrArriv='Arrival' 
                 AND arrivalTime BETWEEN '$CurrentTimeMinus30min' AND '$CurrentTimePlus4Hours'
                 ORDER BY arrivalTime ASC ;";

$query2 .= "SELECT * FROM Alteration WHERE don = '$currentDay' 
                 AND depOrArriv='Arrival'
                 AND arrivalTime BETWEEN '$CurrentTimeMinus30min' AND '$CurrentTimePlus4Hours'
                 ORDER BY arrivalTime ASC ;";

/* execute multi query */
if ($mysqli->multi_query($query2)) {

        do
        {
                if ($result = $mysqli->store_result()) {
                  while ($row = $result->fetch_array()) {
        echo "<tr " . $variable . "><td>"; 
        echo '<img src="php/displayImage.php?id=' . $row['id'] . ' "align="middle" width="110" height="35" >' . "&nbsp;&nbsp;&nbsp;  "
             . $row['flightNo'] ;
        $flightNo = $row['flightNo'];
        echo "</td><td>"; 
        echo $row['airline'];
        echo "</td><td>"; 
        echo $row['origin'];
        echo "</td><td>"; 
        echo $row['arrivalTime'];
        echo "</td><td>"; 
        echo $row['status'];
        echo "</td></tr>"; 

        if ($variable == 'id=basicBoard')
        {
        $variable = 'class=alt';
        //echo $variable;
        } 
    elseif ($variable == 'class=alt')
        {
        $variable = 'id=basicBoard';
        //echo $variable;
        } 
                  }
                  $result->free();
               }
               /* print divider */
               if ($mysqli->more_results()) {
            //    printf("-----------------</br>");
               }

        }
        while (@$mysqli->next_result());
echo "</table> <br/> <br/>";

}

我试图弄清楚为什么会发生这种情况,但未能解决问题。有人可以指出我在代码中哪里出错了吗?

4

1 回答 1

0

我认为您只需要通过抵消“当前”日期来补偿时间流逝:

$midnight = strtotime('today');
$now = time();
$tomorrow = $midnight + 86400;
$diff = $tomorrow - $now;
$offset = $now;
// Number of seconds in 240 minutes = 14400
if ($diff <= 14400) {
  $offset += $diff;
}
$currentDay = date('l', $offset);
$CurrentTimeMinus30min = date('H:i:s', strtotime('-30 minutes'));
$CurrentTimePlus4Hours = date('H:i:s', strtotime('+240 minutes'));
于 2013-10-28T22:42:37.947 回答