0

我有一个带有日期列 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);

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

4

2 回答 2

3

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

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

所以我用 / 替换了所有破折号,它起作用了。希望这可以帮助某人。

于 2013-02-26T13:38:13.453 回答
1

我试过你的代码,生成的查询是

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

所以看起来问题出在strtotime中,它误解了日期。

于 2013-02-26T12:18:31.763 回答