用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1448|回复: 4
收起左侧

[版本 2.x] ci 数据库如何按 月份 查询数据??

[复制链接]
发表于 2015-6-13 21:21:39 | 显示全部楼层 |阅读模式
ci 数据库如何按 月份 查询数据??
比如我要查询201504到201505 这个怎么查询???
 楼主| 发表于 2015-6-14 12:13:22 | 显示全部楼层
自己已解决
PHP复制代码
$data['qishiyue']=$this->input->get('year').'-'.$this->input->get('month').'-01 0:0:0';
                $y=$this->input->get('year');//指定的年
                $m=$this->input->get('month');//指定的月
                $d=date('j',mktime(0,0,1,($m==12?1:$m+1),1,($m==12?$y+1:$y))-24*3600);
                //echo $d;
                $data['zhongshiyue']=$this->input->get('year').'-'.$this->input->get('month').'-'.$d.' 0:0:0';
               
                $duqu=$this->zm_model->zm_dq($this->input->get('type'),$data);
复制代码
发表于 2015-6-15 10:02:37 | 显示全部楼层
本帖最后由 Closer 于 2015-6-15 10:31 编辑

可以考慮這樣用 :

C端
PHP复制代码
$gt = $this->input->get(NULL, TRUE);
 
$gt['year'] = (int) $gt['year'];
$gt['year'] = $gt['year']>=1970&&$gt['year']<=9999 ? $gt['year'] : '1970' ;
 
$gt['month'] = (int) $gt['month'];
$gt['month'] = $gt['month']>=1&&$gt['month']<=12 ? $gt['month'] : '01' ;
$gt['month'] = strlen($gt['month'])==1 ? '0'.$gt['month'] : $gt['month'] ;
 
$s = $gt['year'] . '-' . $gt['month'] . '-01 00:00:00';
$e = $gt['year'] . '-' . $gt['month'] . '-31 23:59:59';
 
$date_array = array(
    'create_date >=' => $s,
    'create_date <=' => $e
);
 
$duqu = $this->zm_model->zm_dq($table_name, $date_array);
 
复制代码

M端
PHP复制代码
public function zm_dq($table_name, $date_array){
    $q = $this->db->where($date_array)->order_by('create_date', 'desc')->get($table_name);
    if($q->num_rows() > 0){
        return $q->result_array();
    }
    return;
}
复制代码

如果存進資料庫時使用的是 date()
那麼就不必太在意每個月底是不是 28, 30, 31
因為我們要查詢的只是一個 "範圍"

另外,像 24*3600 這種,能先給 86400 就先給
不然每次執行時,PHP 都要耗費額外資源來處理運算
同理於 if ($i=0;$i<count($id);$i++) 中的 count()
 
 楼主| 发表于 2015-8-19 20:38:49 | 显示全部楼层
Closer 发表于 2015-6-15 10:02
可以考慮這樣用 :

C端

谢谢你,有一段时间没有上线,所以现在才看到。。
再请教一个问题
CI框架中CodeIgniter.php文件中第39行
PHP复制代码
self:instance =& $this;
复制代码

是&$this什么意思?&$this如何理解?$this不也是引用么?为什么不直接用
PHP复制代码
self:instance = $this;
复制代码
???
发表于 2015-8-20 01:56:11 | 显示全部楼层
FROM_UNIXTIME用这个格式化时间戳

本版积分规则