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

Posted

技术标签:

【中文标题】PHP/SQL Server:根据时间改变 <div> 颜色【英文标题】:PHP/SQL Server: Change <div> color according to time 【发布时间】:2020-01-06 21:01:54 【问题描述】:

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

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

假设现在的时间是 2019-09-04 09:26:00.000,那么预订时间是从 'StartTime' = 2019-09-04 06:00:00.000 到 2019-09-04 结束'EndTime' 10:00: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>

谁能帮帮我?

【问题讨论】:

【参考方案1】:

这个更容易处理。获取 sql 查询中的逻辑。

 <?php 

    require_once('configPDO.php');
    $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");
        while($row = $query->fetch(PDO::FETCH_ASSOC))
    $rColor = $row['rColor'];


    if($rColor == "1")
        $color="background-color:green";
    
    else if ($rColor  == "2")

        $color="background-color:blue";

    else
        $color="background-color:grey";
    

    echo "<div style='$color'>".$row['EndTime']."</div><br>";

    
?>

注意:如果我们的EndTime列不是datetime,在对getdate()current_date()mysql)进行逻辑运算之前先将其强制转换

【讨论】:

如果会议正在运行,则div为蓝色,当会议尚未开始时,它也是蓝色的,但如果会议已经通过,它将变为灰色。你能修复你的代码吗? 更新到 EndTime > getdate() 或 StartTime > getdate(),所以会是蓝色 现在试试,我只换了绿色的。尝试先回显 $rColor 并告诉我输出 解决!!但是为什么需要在查询中做条件呢? 因为就像编程中的几乎所有事情一样,解决问题的方法不止一种。我主张从查询中删除逻辑并在代码所属的 PHP 中执行,但这只是我。

以上是关于PHP/SQL Server:根据时间改变 <div> 颜色的主要内容,如果未能解决你的问题,请参考以下文章

使用php将sql server数据转换为json

PHP SQL Server 2008 未返回预期结果

PHP SQL Server连接工作或不工作[重复]

PHP SQL Server 数据库选择

php SQL Server 中文乱码

通过 PHP、SQL STATE IM004 连接到 SQL Server 时出错,驱动程序的 SQLAllocHandle on SQL_HANDLE_ENV 失败