我想创建一个红绿灯系统,它会告诉我在文档到期之前剩下多少天。 我希望它在我的HTML中用颜色标记。
我还想显示一个文字,告诉我到期前多少天。 到期日期来自我的数据库名为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!";
}
答案 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
)进行比较