使用codeigniter中的数据库表中的语句循环日期

时间:2017-12-07 14:38:48

标签: php codeigniter loops

我是新手程序员Codeigniter

我想显示1个月后的所有日子,并从假期日期表中给出声明(我有46个假期)。我想要假期,日期显示为红色。

我的控制器就像这样

function attendance()
{           
    $data = $this->page();
    $data['this_month'] = date('m');
    $data['this_year']  = date('Y');
    $data['this_day']   = date('d');        
    $this_month = date('m');
    $month = $this->m_date->month($this_month)->row_array();
    $data['day_total'] = $month['day_total'];
    $data['holiday'] = $this->m_date->holiday()->result_array();
    $data['attendance']= $this->m_module->attendance()->result_array();     
    $data['employee']= $this->m_module->employee()->result_array();
    $this->template->display($data['link'],$data);
}

这是我的观点

<?php for($m=1; $m <= $day_total; $m++){ ?>
                <?php foreach ($holiday AS $date){ ?>
                    <?php if ($date['tgl'] === date('Y-m-d', strtotime($this_year.'-'.$this_month.'-'.$m))){
                        echo '<th bgcolor="red">'.$m.'</th>';
                    }else{
                        echo '<th bgcolor="">'.$m.'</th>';
                    } ?>
                <?php } ?>
            <?php } ?>

但是当我在浏览器中运行时,显示如下

error looping image

请帮我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

我更新了代码

在你的假日循环中,你在每次迭代中回显日期,尝试这样的事情:

<?php
 for($m=1; $m <= $day_total; $m++){ 
     $color ="";
     foreach ($holiday AS $date){               
           if ($date['tgl'] === date('Y-m-d', strtotime($this_year.'-'.$this_month.'-'.$m))){
               $color="red";
           }
      }
     echo '<th bgcolor="'. $color  .'">'.$m.'</th>';
  } 
?>