【发布时间】:2018-04-25 08:44:30
【问题描述】:
我有一个 sql 表,用于比较三个不同案例的今天日期和项目的 Expiry_Date 并显示每个案例的相关消息,我正在尝试更改每个单元格与已识别案例相关的颜色。
例如,
案例1:如果今天的日期> Expiry_Date 单元格颜色应为红色
案例 2:如果今天的日期 = Expiry_Date,则单元格颜色应为 Yello
案例 3:如果今天的日期
我已经添加了下面的代码,但是只有case3正在执行,并且对于其他情况也给出了绿色(错误的颜色)
那么有没有办法根据它的情况改变单元格的颜色呢?
我的代码
$sql = "SELECT
ID,
Item_Name,
Expiry_Date,
CASE
WHEN `Expiry_Date` < CURDATE() THEN CONCAT (`Item_Name`, ' has EXPIRED already')
WHEN `Expiry_Date` = CURDATE() THEN CONCAT(`Item_Name`,' is going to expire today')
WHEN `Expiry_Date` BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' will expire tomorrow')
WHEN `Expiry_Date` > DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' has not expire yet')
ELSE 'Error processing expiration date.'
END AS `Expiration_Message`
FROM
test;";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['ID']. "</td>";
echo "<td>" . $row['Item_Name']. "</td>";
if($row['Expiry_Date']<['CURDATE()']) // green
echo "<td style='background-color: #00FF00;'>".$row['Expiry_Date']."</td>";
else if($row['Expiry_Date']>['CURDATE()'])// red
echo "<td style='background-color: #FF0000;'>".$row['Expiry_Date']."</td>";
else if($row['Expiry_Date']==['CURDATE()']) // yellow
echo "<td style='background-color: #FFFF00;'>".$row['Expiry_Date']."</td>";
echo "<td>" . $row['Expiration_Message']. "</td>";
echo "</tr>";
}
【问题讨论】:
-
你知道 date('Y-m-d', strtotime($somedatetocheck)) 吗?
-
罗尼的回答会做的工作
-
感谢 Anil,只是想知道为什么人们不赞成它,虽然它可能是答案.. 或者至少留下评论为什么不赞成。