php/mysql显示截止日期的剩余天数



我使用的这个脚本会通知您距离特定日期还有多少天,在我的数据库中有一个名为"insurance_date"的表,它采用DATETIME格式,其中是一个唯一的到期日期。

然后我的脚本告诉用户到那个日期还有多少天,即保险到期还有4天,或者保险到期还有3天。

它还使用红色或绿色交通灯指示灯,因此,如果截止日期为7天或7天以下,它将显示红色,否则,如果8天或8天以上,则它将显示绿色。

目前,脚本运行良好,但只有"2天",然后脚本假设说"保险明天到期,如果还有1天,或者如果到期日是今天,则说"今天"。

有人能告诉我我做错了什么吗,谢谢

代码:

 <?php include 'config.php';
     $data = mysql_query("SELECT *, TIMESTAMPDIFF(DAY, insurance_date, NOW()) AS expire_date FROM supplier_stats") 
     or die(mysql_error()); 
     echo "<table class="table" style="width:900px;  font-family: 'Lucida Grande', Tahoma, Verdana, Arial, sans-serif;
     font-size:11px;" >
<tr>
<td style="width:150px;">ID:</td><td>Company Name:</td><td>Note:</td><td>Status:</td></tr>";

     while($row = mysql_fetch_array( $data )) { 
       $days = $row['expire_date'] -1;
       echo "<tr><td style="width:150px;"><p>".$row['id'] . "</p></td>"; 
       echo "<td style="width:150px;"><p>".$row['company_name'] . "</p></td>"; 
       if ($days > 0) {
            echo "<td style="width:150px;"><p>Insurance expires in <font color="red">{$row['expire_date']} day(s)!</font></p></td>"; 
        } else {
          $when = $days*-1;           
          echo "<td style="width:150px;"><p>Insurance expires";
          if ($when > 1){
              echo " in {$when} days</p></td>";
          }
          if ($when >= 8){
            echo "<td style="width:150px;"><div class="green_light"></div></td>";
          }
          if ($when <= 7){
            echo "<td style="width:150px;"><div class="red_light"></div></td>";
          } elseif ($when > -1) {
            echo " tomorrow</p></td>";
          } elseif ($when === 0) {
            echo " today</p></td>";
          }
        }
        echo "<tr>";
      }
      echo "</table>"; //Close the table in HTML
    ?>

我不知道你在数据库中存储了什么,但假设你正在存储保险到期日期的时间戳,我会这样做。

$expiry_date=$row['expire_date'];
$current_date=time();
$seconds_to_expire=$expiry_date-$current_date;
$days_to_expire=floor($seconds_to_expire/86400);
if($days_to_expire<=0)
{
echo "Expired";
}
else if($days_to_expire==1)
{
echo "Expires tomorrow";
}
else if($days_to_expire==2)
{
echo "Expires in two days";
}
else
{
echo "Expires in ".$days_to_expire." days";
}

相关内容

  • 没有找到相关文章

最新更新