CakePHP按日期范围查找?

时间:2012-01-19 22:06:59

标签: mysql cakephp cakephp-2.0

我正在尝试提取尚未过期的优惠券。我在我的控制器中有这个:

public function coupons() {
    $this->paginate['Coupon']=array(
        'limit'=>9,
        'order'=>'RAND()',
        'conditions'=>array(
        'Coupon.end_date'=>??????)
    );
    $c=$this->paginate('Coupon');
    $this->set('allcoupons', $c);
}

我需要它来返回截至今天未过期的所有记录。 end_date采用DATE格式。我不知道如何让蛋糕查看end_date并将其与今天进行比较,并在分页方法中进行。

2 个答案:

答案 0 :(得分:8)

您只需要正确格式化日期

'Coupon.end_date >' => date('Y-m-d H:i:s')

答案 1 :(得分:0)

您可能需要在控制器中使用time helper函数dayAsSql,以便有类似

的内容
public function coupons() {
    $expire_interval = "3 days";
    $this->paginate['Coupon'] = array(
        ...
        'conditions' => 
            ## called via TimeHelper
            $this->Time->dayAsSql($this->Time->fromString($expire_interval), 'end_date')
        )
    );
    ....
}