php代码根据日期更改背景颜色

时间:2015-01-14 09:39:51

标签: php sql date background

嗨我有这个代码,如果日期是在到期时间的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">'; ?>

的问候, 乙

2 个答案:

答案 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是否会进行转换。希望这能让你到达某个地方