sql — php код для изменения цвета фона на основе даты

Привет у меня есть этот код, который должен изменить цвет фона, если дата истекает через 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">
<?phpif ($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">'; ?>

С уважением,
В

-3

Решение

Во-первых, я считаю, что всегда лучше сравнивать временные метки 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']);

а потом по вашему если еще …

<?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 выполнит преобразование, если не указан аргумент. Надеюсь, это куда-нибудь

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">'; ?>
0

По вопросам рекламы [email protected]