我正在使用codeigniter框架,它将在列中显示日期,其中行将根据其他列上的记录显示不同的日期。
我想要发生的是在日期旁边显示“活跃,几乎已过期,过期”这个词。特别是如果日期从到期日起不到7天就过期了。
例如,表格图片:
型号:common_model.php
function get_insurance_expiration_date($id){
$query = $this->db->query("SELECT expiry_date FROM ".tbl_insurance." WHERE expiry_date <= NOW() - INTERVAL 1 WEEK");
if($query == TRUE){
return $query->row()->expiry_date.','.'Almost Expired' ;
}else if ($query == FALSE){
return $query->row()->expiry_date.','.'Active' ;
}else{
return $query->row()->expiry_date.','.'Expired' ;
}
}
观点:insurance_view.php
<?php
foreach($cols as $c){
switch($c){
//some code here
case 'expiry_date':
echo '<td>'.$this->common_model->get_insurance_expiration_date($record->expiry_date).'</td>';
break;
//some code here
}
}
?>
当我尝试运行代码时,它将显示第一行中具有相同信息的所有行, 例如:
过期日期
2016-04-20,几乎已过期
2016-04-20,几乎已过期
2016-04-20,几乎已过期
2016-04-20,几乎已过期
请帮助我,我的条件有问题。我在这个问题上遇到了很多困难。
答案 0 :(得分:0)
如果您使用的是Codeigniter,则需要计算返回的行数:
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();
所以,如果$query->num_rows()==0
你可以检查它并做你的东西。
答案 1 :(得分:0)
从mysql中获取日期。然后使用datediff函数在php中评估它,以决定将哪个字符串连接到它的末尾。