检查日期是否在多个日期范围内
问题描述:
我有一个有效期限的证书列表。我试图根据它们距离期限有多远显示不同的颜色。如果在30天内(或已经过期)过期,我需要显示红色,如果日期在60天到30天之间,则需要显示红色,如果超过60天,则显示为绿色。到目前为止,我只开始了+30天的部分工作。到目前为止,我有以下检查日期是否在多个日期范围内
<?php foreach($company_certificates as $certificates):
$startdate = date('d-m-Y');
$onemonth = date('d-m-Y', strtotime('+30 days'));
?>
<tr>
<td><?php echo $certificates->username ?></td>
<td><?php echo $certificates->certificate ?></td>
<td><?php echo $certificates->expiry_date ?></td>
<td><?php
//$onemonth = date($certificates->expiry_date, strtotime('-30 days'));
if ($date >= $certificates->expiry_date)
{
$expiry = '2'; //expired
}
else
{
if($certificates->expiry_date > $onemonth && $startdate < $certificates->expiry_date)
{
$expiry = '1';
//echo"1 month";
}
else
{
$expiry = '0';
}
}
echo '<img src="' . $this->config->base_url('assets/images/expiry_' . $expiry . '.png') . ' "/>';?></td></tr>
<?php endforeach; ?>
到目前为止,它表明,如果证书已经过期,但它并没有说明其他证书的正确到期。任何人都可以指出我正确的方向,因为这个问题正在杀死我。谢谢!
答
function getExpireColor($expireDate){
$today = strtotime(date("Y-m-d"));
$exp = strtotime($expireDate);
// convert the difference to days
$days = ($exp - $today)/(3600*24);
if ($days < 30) return "red";
if ($days < 60) return "amber";
return "green";
}
调用只是
$this->config->base_url('assets/images/expiry_' . getExpireColor($expiry) . '.png')
,完美的工作,谢谢! – Pooshonk 2013-05-14 15:36:43