我有一个日期列为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);
我总是得到一个空记录:(
答案 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 中,这会误解日期。