2013-02-26 46 views
0

我有一個包含日期列invoiceDate的表。在不存在與invoiceDate的值的記錄爲28-02-13查找日期範圍之間的記錄在codeigniter activerecord中返回空值

現在我用下面的日期範圍的提取記錄:

  $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); 

我總是得到一個空的記錄:(

+0

什麼是您的列日期或日期時間? – 2013-02-26 12:51:50

回答

1

我想你的代碼和生成的查詢是

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

所以看起來問題出在的strtotime,這misinterpr預計日期。

+0

嘿,我做到了。請參閱下面的答案。謝謝你的幫助 :) – beNerd 2013-02-26 13:38:54

3

我發現了我的問題的根源。 Strtotime將減號看作是負號,並進行操作。我使用它的工作原理:

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

因此,我用/替換了所有的破折號,它工作。希望這可以幫助某人。

相關問題