Изменение цвета зависит от значений даты

Я хочу изменить цвет всей строки в зависимости от продолжительности даты. Например, если продолжительность даты от 3 до 6, цвет оранжевый; более 6 должны быть показаны красным цветом. Могу ли я узнать, как я могу это сделать?

foreach ($ary_list as $k => $v) {

 $color= xxx;
 echo "<tr style=\"color:$color\">";
 echo  "<tr bgcolor=\"#F5F5F5\">\n";
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["seal_area"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>\n";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["seal_barcode"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>\n";
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["dt_issue"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";  
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["issue_admin"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["receive_by"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["receive_id"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
 
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["dt_return"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["return_admin"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["return_by"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  echo  "&nbsp " .$v["return_id"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
  
  /*echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" color=\"#3C5F84\">\n";
  $now = time(); // or your date as well
    $your_date = strtotime($v["dt_issue"]);
    $datediff = $now - $your_date;

//echo round($datediff / (60 * 60 * 24));
    //echo $datediff->format('%R%a days');
  echo  "&nbsp " .round($datediff / (60 * 60 * 24))." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";*/
  
  echo "<td nowrap ".$rowspan.">\n";
    $now = time();
    $your_date = strtotime($v["dt_issue"]);
    $datediff = $now - $your_date;
    $daysDiff = round($datediff / (60 * 60 * 24));
    $color = $daysDiff < 3 ? '#3C5F84' : ($daysDiff <= 6 ? 'orange' : 'red');
    echo  "<font face=\"arial\" size=\"1\" color=\"$color\">\n";
    echo  "&nbsp " .$daysDiff." &nbsp &nbsp ";
    echo  "</font>\n";
    echo  "</td>";

  echo  "</tr>";
  
}

Вышеприведенный код находится в php, как я считаю вкладку времени цикла. Для dt_issue используется функция now() при вставке в запрос. Я вставлю скриншот ниже.

Изменение цвета зависит от значений даты

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать изменить цвет шрифта в зависимости от дней.

echo "<td nowrap ".$rowspan.">\n";
$now = time();
$your_date = strtotime($v["dt_issue"]);
$datediff = $now - $your_date;
$daysDiff = round($datediff / (60 * 60 * 24));
$color = $daysDiff < 3 ? '#3C5F84' : ($daysDiff <= 6 ? 'orange' : 'red');
echo  "<font face=\"arial\" size=\"1\" color=\"$color\">\n";
echo  "&nbsp " .$daysDiff." &nbsp &nbsp ";
echo  "</font>\n";
echo  "</td>";

И если вы хотите изменить цвет всей строки, вы должны сделать это до эха тега <tr>, например echo "<tr style=\"color:$color\">";

Пример целой строки:

foreach ($ary_list as $k => $v) {

  $now = time();
  $your_date = strtotime($v["dt_issue"]);
  $datediff = $now - $your_date;
  $daysDiff = round($datediff / (60 * 60 * 24));
  $color = $daysDiff < 3 ? '#3C5F84' : ($daysDiff <= 6 ? 'orange' : 'red');
  
 echo "<tr style=\"color:$color\" bgcolor=\"#F5F5F5\">";
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["seal_area"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>\n";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["seal_barcode"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>\n";
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["dt_issue"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";  
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["issue_admin"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["receive_by"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["receive_id"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
 
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["dt_return"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["return_admin"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";

  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["return_by"]. " &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
  
  echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  echo  "&nbsp " .$v["return_id"]." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";
  
  /*echo "<td nowrap ".$rowspan.">\n";
  echo  "<font face=\"arial\" size=\"1\" >\n";
  $now = time(); // or your date as well
    $your_date = strtotime($v["dt_issue"]);
    $datediff = $now - $your_date;

//echo round($datediff / (60 * 60 * 24));
    //echo $datediff->format('%R%a days');
  echo  "&nbsp " .round($datediff / (60 * 60 * 24))." &nbsp &nbsp ";
  echo  "</font>\n";
  echo  "</td>";*/
  
  echo "<td nowrap ".$rowspan.">\n";
    echo  "<font face=\"arial\" size=\"1\" color=\"$color\">\n";
    echo  "&nbsp " .$daysDiff." &nbsp &nbsp ";
    echo  "</font>\n";
    echo  "</td>";

  echo  "</tr>";
  
}

Меня устраивает. Большое спасибо. Кроме того, возможно ли сделать всю роль оранжевой вместо того, чтобы делать оранжевой только вкладку времени цикла?

oliver 17.05.2022 08:10

Чтобы сделать всю строку оранжевой, вы должны получить цвет перед эхом вашего тега <tr>, например: $color = xxx; echo "<tr style=\"color:$color\">"; //затем повторите ваши <td>s

bubbak 17.05.2022 08:15

это все еще не изменило цвет всей линии. Не могли бы вы показать мне, где я должен вставить это? Я вставил все коды php.

oliver 17.05.2022 08:50

ответ обновлен, просто поместите коды получения цвета перед tr и удалите цвет в шрифте

bubbak 17.05.2022 09:05

Другие вопросы по теме