如何根据给定的日期更改php中的单元格颜色

时间:2017-11-12 16:39:58

标签: php css sql colors

我有一个sql表,用于比较今天的日期和三个不同案例的项目的Expiry_Date,并显示每个案例的相关消息,我正在尝试更改每个单元格的颜色。情况下。

例如,

案例1:如果今天的日期> Expiry_Date单元格颜色应为红色

案例2:如果今天的日期= Expiry_Date,则单元格颜色应为Yello

案例3:如果今天的日期< Expiry_Date单元格颜色应为绿色

我添加了以下代码,但只执行了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>";

}

My table

1 个答案:

答案 0 :(得分:-1)

案例1:如果今天的日期&gt; Expiry_Date单元格颜色应为红色

案例2:如果今天的日期= Expiry_Date,则单元格颜色应为Yello

案例3:如果今天的日期&lt; Expiry_Date单元格颜色应为绿色

<强>代码:

while($row = mysqli_fetch_array($result))
{
    echo "<tr>";
    echo "<td>" . $row['ID'] . "</td>";
    echo "<td>" . $row['Item_Name'] . "</td>";
    if(strtotime($row['Expiry_Date']) < strtotime(date('Y-m-d'))) //  green
    {
        echo "<td style='background-color: #00FF00;'>" . $row['Expiry_Date'] . "</td>";
    }
    else if(strtotime($row['Expiry_Date']) > strtotime(date('Y-m-d')))//  red
    {
        echo "<td style='background-color: #FF0000;'>" . $row['Expiry_Date'] . "</td>";
    }
    else if(strtotime($row['Expiry_Date']) == strtotime(date('Y-m-d'))) //  yellow
    {
        echo "<td style='background-color: #FFFF00;'>" . $row['Expiry_Date'] . "</td>";
    }
    echo "<td>" . $row['Expiration_Message'] . "</td>";
    echo "</tr>";
}

试试这个。

date('Y-m-d', strotime($row['Expiry_Date'])会将您的$row['Expiry_Date']转换为Y-m-d格式。 date('Y-m-d')检查当前(服务器/客户端,不确定,认为其客户端)日期。