猿问

PHP/SQL Server:根据时间改变 <div> 颜色

我为预订房间创建了一个 PHP 页面。在该预订中,每个会议室都有一个调度程序。调度器按天查看,时间格式为24小时。


所以在我的 SQL 数据库中,时间有两列,分别是“StartTime”和“EndTime”。


假设现在时间是 2019-09-04 09:26:00.000,则预订时间是从 'StartTime' = 2019-09-04 06:00:00.000 到 2019-09-04 10:00 结束'EndTime' :00.000,div 颜色为绿色,因为预定正在运行。


但是,如果现在是 2019-09-04 14:00:00.000,由于会议已经过去,div 颜色将变为灰色。


下面只是我的简单测试代码


<html>

<thead>

</thead>

<tbody>

<?php 


    require_once('configPDO.php');

    $query = $conn->query("SELECT * FROM booking ORDER BY Book_No DESC");

    while($row = $query->fetch(PDO::FETCH_ASSOC)){

        $end = $row['EndTime'];


        if($end == GETDATE()){

            $color="background-color:green";

        }

        else if ($end > GETDATE()){

            $color="background-color:blue";

        }else{

            $color="background-color:grey";

        }


        echo "<div style='$color'>".$end."</div><br>";

    }


?>


</tbody>

</html>

谁能帮我?


一只名叫tom的猫
浏览 137回答 1
1回答

跃然一笑

这个更容易处理。获取 sql 查询中的逻辑。&nbsp;<?php&nbsp;&nbsp; &nbsp; require_once('configPDO.php');&nbsp; &nbsp; $query = $conn->query("SELECT *, case when getdate() between StartTime and EndTime then '1' when StartDate > getdate() then '2' else '0' end as rColor FROM booking ORDER BY Book_No DESC");&nbsp; &nbsp; &nbsp; &nbsp; while($row = $query->fetch(PDO::FETCH_ASSOC)){&nbsp; &nbsp; $rColor = $row['rColor'];&nbsp; &nbsp; if($rColor == "1"){&nbsp; &nbsp; &nbsp; &nbsp; $color="background-color:green";&nbsp; &nbsp; }&nbsp; &nbsp; else if ($rColor&nbsp; == "2"){&nbsp; &nbsp; &nbsp; &nbsp; $color="background-color:blue";&nbsp; &nbsp; }else{&nbsp; &nbsp; &nbsp; &nbsp; $color="background-color:grey";&nbsp; &nbsp; }&nbsp; &nbsp; echo "<div style='$color'>".$row['EndTime']."</div><br>";&nbsp; &nbsp; }?>注意:如果我们的EndTime列不是datetime,则在对getdate()or current_date()(MySQL)进行逻辑运算之前先将其强制转换
随时随地看视频慕课网APP
我要回答