php显示红色,琥珀色或绿色div取决于还剩多少天?

时间:2014-04-14 13:43:24

标签: php mysql

我有一个PHP脚本,告诉用户何时文档即将过期。我现在想要修改这个脚本并为其添加交通灯,我的意思是如果文档将在7天或更短时间内到期,然后显示红色div,否则如果文档将在30天或更短时间内到期然后显示一个琥珀色div,或者如果一个文件没有在30天之前到期,那么显示一个绿色div。

有人可以告诉我如何修改我的脚本来做我需要它做的事,谢谢。

PHP:

        <?php 
 include 'config.php';
 $data = mysql_query("SELECT TIMESTAMPDIFF(DAY, insurance_date, NOW()) AS expire_date 
  FROM supplier_stats") 
 or die(mysql_error()); ?>



            <?php 
include 'config.php';
$result = mysql_query("SELECT TIMESTAMPDIFF(DAY, insurance_date, NOW()) AS expire_date 
                         FROM supplier_stats") or die(mysql_error()); 
while($row = mysql_fetch_array($result)) 
{
    $days = $row['expire_date'];
    if ($days > 0)
    {
        echo "<p>Insurance expires in <font color=\"red\">{$row['expire_date']} day(s)</font></p>"; 
    }
    else
    {
        $when = $days*-1;            
        echo "<p><font color=\"red\">Insurance expires";
        if ($when > 1)
        {
            echo " {$when} days&nbsp;|&nbsp;<font color=\"red\">"; 
            $data = mysql_query("SELECT * FROM supplier_stats") 
            or die(mysql_error()); 

            while($info = mysql_fetch_array( $data )) 
            { 
            echo date('d/m/Y',strtotime($info['insurance_date'])); echo"</font></p>";  } 
            }
        elseif ($when == 1)
        {
            echo " yesterday!</p>";
        }
        else
        {
            echo " today!</font></p>";
        }

    }

} 
?>

1 个答案:

答案 0 :(得分:0)

如果我是你,我会制作一个将剩下的日子映射到颜色的功能:

function traffic_light($days){
  if($days <= 7) return 'red';
  else if($days <= 30) return 'yellow';
  else return 'green';
}

然后更改显示行的代码以使用它来选择颜色:

echo "<p>Insurance expires in <font color=\"".traffic_light($days)."\">{$row['expire_date']} day(s)</font></p>";