嗨我有这个代码,如果日期是在到期时间的2个月后应更改背景颜色但由于某种原因它无法正常工作。我认为只有年份小于实际日期才会改变。任何帮助表示赞赏。 我的代码是:
$expires = date("Y/m/d",(mktime(0, 0, 0, date("m")+2, date("d"), date("Y"))));
echo ($expires."<br>");
$dateDue = date('m/d/Y');
$result = $db->prepare("SELECT * FROM tblitemdates ORDER BY name ");
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<tr class="record">
<?php
if ($row["dateDue"] == NULL)
echo '<tr style="background-color:#ffffff">';
else if ($row["dateDue"]< $expires)
echo '<tr style="background-color:#FFCC99">';
else if ($row["st1"] == NULL)
echo '<tr style="background-color:#ffffff">';
else if ($row["st1"]< $expires)
echo '<tr style="background-color:#FFCC99">';
else
echo '<tr style="background-color:#ffffff">'; ?>
的问候, 乙
答案 0 :(得分:0)
删除额外的<tr class="record">
$expires = date("Y/m/d",(mktime(0, 0, 0, date("m")+2, date("d"), date("Y"))));
echo ($expires."<br>");
$dateDue = date('m/d/Y');
$result = $db->prepare("SELECT * FROM tblitemdates ORDER BY name ");
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<?php
if ($row["dateDue"] == NULL)
echo '<tr style="background-color:#ffffff">';
else if ($row["dateDue"]< $expires)
echo '<tr style="background-color:#FFCC99">';
else if ($row["st1"] == NULL)
echo '<tr style="background-color:#ffffff">';
else if ($row["st1"]< $expires)
echo '<tr style="background-color:#FFCC99">';
else
echo '<tr style="background-color:#ffffff">'; ?>
答案 1 :(得分:0)
首先,我发现将unix时间戳作为一种比较日期更容易使用的格式更好。
你可以用你的expires变量得到这个......如下......
$expires = date("Y/m/d",(mktime(0, 0, 0, date("m")+2, date("d"), date("Y"))));
$expiresUnix = strtotime($expires); // This should give you the unix timestamp of your formatted date.
[ RUN DB FETCH CODE ]
$dateDueUnix = strtotime($row['dateDue']);
$st1Unix = strtotime($row['st1']);
然后在你的if else ......
<?php
if ($dateDueUnix == NULL)
echo '<tr style="background-color:#ffffff">';
else if ($dateDueUnix< $expiresUnix)
echo '<tr style="background-color:#FFCC99">';
else if ($st1Unix == NULL)
echo '<tr style="background-color:#ffffff">';
else if ($st1Unix < $expiresUnix)
echo '<tr style="background-color:#FFCC99">';
else
echo '<tr style="background-color:#ffffff">'; ?>
注意您可能需要将== NULL更改为== 0,因为如果没有提供参数,我不太确定$ st1Unix是否会进行转换。希望这能让你到达某个地方