如何使用PHP基于条件更改CSS属性

时间:2014-04-02 23:02:47

标签: php mysql css sql

我正在建立一个管理食物的网站。跟踪到期日期等。

当用户仪表板加载时,它会显示他们当前添加的食品列表以及有关它们的信息,品牌,位置(冰箱,食品柜台,冷冻柜)和到期日期。

我有一个html表中的项目,从我创建的食物表行的php echos中绘制它们的值。

我想要做的是在当前日期和设定的到期日期之间有大约3天的差异时,将过期日期的文本更改为红色。

这是我将代码放在表格中的代码。

       <?php 

while($rows = mysql_fetch_array($sql2))

    {
?> 

            <tr>
              <td><b><?php echo $rows['Name'] ?></td>
              <td><b><?php echo $rows['Brand'] ?></td>
              <td><b><?php echo $rows['Type'] ?></td>
              <td><b><?php echo $rows['Container'] ?></td>
              <td><b><?php echo $rows['ExpirationDate'] ?></td>
              </tr>


            <?php

    }
    ?>

$ sql2包含对用户拥有的所有食物的查询。

那么我将如何创建一个条件来使其成功呢?

2 个答案:

答案 0 :(得分:2)

$date1 = new DateTime("now");
$date2 = $rows['ExpirationDate'];
$difference = $date1->diff($date2);
$days = $difference->d;
$class = '';
if ($days <= 3)
    $class = 'class="expired"';

然后将$class变量添加到每个表格单元格。如果日期之间的差异为3天或更短,则会添加class="expired",否则将不会添加任何内容。然后设置.expired类的样式以获得红色文本。

您很可能必须格式化$date2变量,但该怎么做取决于它目前的格式...

答案 1 :(得分:0)

您可以在关闭时为其过期日期分配不同的类别。

类似的东西:

<td><b><?php 
     $exptime = strtotime($rows['ExpirationDate']);
     if ($exptime - time() < 3*24*60*60){
         $class = 'expBad';
     }else{
         $class = 'expOK';
     }

     echo "<span class=\"$class\">".$rows['ExpirationDate']."</span>" ?></td>

然后在.css中,您可以将 expBad 类定义为红色。

   span.expBad {
      color: red;
   }