【问题标题】:How to alter CSS properties using PHP based on a conditional如何根据条件使用 PHP 更改 CSS 属性
【发布时间】:2014-05-14 12:31:09
【问题描述】:

我正在开发一个管理食品的网站。跟踪到期日期等。

当用户仪表板加载时,它会显示他们当前添加的食品列表以及有关它们的信息、品牌、位置(冰箱、食品储藏室、冰柜)和有效期。

我有一个 html 表中的项目,从我创建的食物表的行的 php 回显中提取它们的值。

当当前日期与设置的到期日期之间存在大约 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 保存用户拥有的所有食物的查询。

那么我将如何创建一个条件来解决这个问题?

【问题讨论】:

    标签: php mysql css sql


    【解决方案1】:
    $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 变量,但如何做到这一点取决于它当前的格式...

    【讨论】:

      【解决方案2】:

      您可以在到期日期临近时为其分配不同的类别。

      类似:

      <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;
         }
      

      【讨论】:

        猜你喜欢
        • 2022-01-26
        • 2022-01-05
        • 2011-08-18
        • 2014-10-07
        • 1970-01-01
        • 1970-01-01
        • 2012-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多