为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
一只名叫tom的猫 2021-12-24 15:48:39
我为预订房间创建了一个 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>谁能帮我?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

这个更容易处理。获取 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()or current_date()(MySQL)进行逻辑运算之前先将其强制转换


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信