2013-05-14 3 views
0

У меня есть список сертификатов, срок действия которых истекает. Я пытаюсь показать разные цвета в зависимости от того, насколько они далеко от истечения срока действия. Мне нужно показать красный, если срок его действия истекает менее чем за 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; ?> 

До сих пор это показывает, если срок действия сертификата истек, но он не показывает правильное истечение для других сертификатов. Может ли кто-нибудь указать мне в правильном направлении, поскольку эта проблема убивает меня. Благодаря!

ответ

1

Посмотрите на DateTime::diff, чтобы получить интервал, форматирование потом просто

+0

Это работало отлично, спасибо! – Pooshonk

1
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')