我正在建立一个管理食物的网站。跟踪到期日期等。
当用户仪表板加载时,它会显示他们当前添加的食品列表以及有关它们的信息,品牌,位置(冰箱,食品柜台,冷冻柜)和到期日期。
我有一个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包含对用户拥有的所有食物的查询。
那么我将如何创建一个条件来使其成功呢?
答案 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;
}