查找日期范围之间的记录在codeigniter activerecord中返回空

时间:2013-02-26 11:34:27

标签: codeigniter date activerecord

我有一个日期列为invoiceDate的表。其中有一条记录,其值为invoiceDate,为28-02-13

现在我使用以下内容来获取日期范围之间的记录:

            $this->db->select('*');
    $this->db->from('salesinvoices');
    $dateone=date('Y-m-d',strtotime('26-02-13'));
    $datetwo=date('Y-m-d',strtotime('12-03-13'));
    $this->db->where('invoiceDate >=', $dateone);
    $this->db->where('invoiceDate <=', $datetwo);
    $query = $this->db->get();
    $results = $query->result();
    print_r($results);

我总是得到一个空记录:(

2 个答案:

答案 0 :(得分:3)

我找到了问题的根源。 Strtotime将破折号视为减号并执行操作。我用它来工作:

date('Y-m-d',strtotime(str_replace('-', '/', '2026-02-13')));

所以我用/替换了所有破折号并且它有效。希望这有助于某人。

答案 1 :(得分:1)

我尝试了您的代码,生成的查询是

SELECT * FROM "salesinvoices" 
WHERE "invoiceDate" >= '2026-02-13' 
AND "invoiceDate" <= '2012-03-13'

所以看起来问题出现在 strtotime 中,这会误解日期。