Mysql CakePHP按日期范围查找?

Mysql CakePHP按日期范围查找?,mysql,cakephp,cakephp-2.0,Mysql,Cakephp,Cakephp 2.0,我想去拿尚未过期的优惠券。我的控制器中有: public function coupons() { $this->paginate['Coupon']=array( 'limit'=>9, 'order'=>'RAND()', 'conditions'=>array( 'Coupon.end_date'=>??????) ); $c=$this->paginate('Cou

我想去拿尚未过期的优惠券。我的控制器中有:

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

我需要它来归还所有今天还没有过期的记录<代码>结束日期为日期格式。我不知道如何让cake查看
结束日期
并将其与今天进行比较,然后在paginate方法中进行比较。

您只需要正确设置日期格式

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

您可能需要在控制器中使用函数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')
        )
    );
    ....
}

因此,大于号位于单引号内?是的,对于CakePHP查询中的任何类型的比较操作,运算符位于键中。:)TimeHelper的内容已经被移动到实用程序中的一个Lib类中,以便在模型内部进行更干净的MVC访问等。因此,您的答案并不完全正确。这是真的(在提供的链接中,当从模型中调用CaketTime时,它的用法也会显示出来),但我的回答基于所问的问题。“…过期了。我的控制器中有这样一句话:“我并不是想贬低互联网上的某个人,而是我的目标是帮助他们解决他们的问题,并为可能偶然发现这个问题的其他人提供有用的东西。这个问题一年前就已经解决了(如果你看一下时间戳的话)。您刚才在一个过时的问题中添加了错误的信息。那么,您至少可以在这里使用适当的类(CakeTime)。PS:您还需要正确地包含它-使用App::uses()。