【问题标题】:Check if date is in range of multiple date ranges检查日期是否在多个日期范围内
【发布时间】:2013-05-14 15:26:30
【问题描述】:

我有一个有有效期的证书列表。我试图根据它们离到期日的距离来显示不同的颜色。如果它在不到 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; ?>

到目前为止,它显示证书是否已过期,但未显示其他证书的正确过期时间。谁能指出我正确的方向,因为这个问题正在杀死我。谢谢!

【问题讨论】:

    标签: php codeigniter date date-range


    【解决方案1】:

    查看DateTime::diff 以获取您的间隔,然后格式化很简单

    【讨论】:

      【解决方案2】:
      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')
      

      【讨论】:

        猜你喜欢
        • 2017-01-28
        • 1970-01-01
        • 1970-01-01
        • 2018-07-02
        • 1970-01-01
        • 1970-01-01
        • 2012-08-25
        • 2019-07-07
        相关资源
        最近更新 更多