到期检查的基本费率比较

时间:2014-04-14 12:49:25

标签: php mysql

我想创建一个红绿灯系统,它会告诉我在文档到期之前剩下多少天。 我希望它在我的HTML中用颜色标记。

  • 绿色:如果文件有31天或更长时间才能过期。
  • 琥珀色:30天或更短时间,直到它过期。
  • 红色:持续7天或更短时间。

我还想显示一个文字,告诉我到期前多少天。 到期日期来自我的数据库名为insurance_date

的字段

继承我的代码我是php的新手,所以很难将我的代码放在一起,如果有人可以告诉我如何重构我的代码以实现我想要做的事情,那将是非常好的,谢谢。

我的代码:

 <?php 

   include 'config.php';
   $data = mysql_query("SELECT * FROM supplier_stats") 
   or die(mysql_error()); 

   while($info = mysql_fetch_array( $data )) 
   { 
     echo "<p>Insurance Expires ! - <font color=\"red\">".$info['insurance_date'] . "</font></p>"; 

   } 

   $date_diff = 60*60*24*7; // 7 days
   // time()+$date_diff will be a timestamp 7 days in the future
   if ($info['insurance_date'] < time()+$date_diff) {
    echo "less than 7 days left!";
   }

2 个答案:

答案 0 :(得分:1)

while循环中,迭代supplier_stats表中的所有条目。 对于每次迭代,都输出"<p>Insurance Expires ! ...。 你可能不想这样做。 编辑您的查询以仅选择将在您的范围内过期的条目。

示例:

SELECT * FROM supplier_stats WHERE insurance_date >= yourDateToCompareTo

根据您设置数据库的方式,insurance_date可能是'MySQL Type DATE或String甚至是Integer。根据这一点,您必须使Comparsion检查日期是否接近您的到期范围。

在你的循环(} 关闭)之后,你仍然使用$info中的if ($info['insurance_date'],{{1}}只使用表格中的最后一个条目。< / p>

这是一个非常非常基本的问题,我建议你阅读一些非常基本的初学者教程,这些教程可以使用internet search engine轻松找到。

答案 1 :(得分:0)

我猜测$info['insurance_date']YYYY-mm-dd HH:ii:ss格式的日期时间字符串,对吗?

如果是这种情况,则需要先将其strtotime运行,然后再将其与数字时间(time()+$date_diff)进行比较