0

试图弄清楚如何从数据库中查找在特定日期创建的所有记录,但我很难提出必要的条件。这是我到目前为止所拥有的:

$date = new DateTime('2012-11-25');
$users = $this->User->find('all', array('conditions' => array('User.created > ' => $date)));

但这给我的不仅仅是指定的日子。如何调整条件以返回在 11 月 25 日创建的所有用户?

4

3 回答 3

0

玩了一圈之后,我终于能够让它工作了。希望这可以帮助遇到相同情况的其他人:

$date = new DateTime('2012-11-25');
$users = $this->User->find('all', array('conditions' => CakeTime::dayAsSql($date, $date, 'User.created')));

关键是确保提供 $date 两次。

于 2012-11-27T00:44:39.600 回答
0

您的代码中有一个大于符号。

$users = $this->User->find('all', array('conditions' => array('User.created > ' => $date)));

尝试不:

$users = $this->User->find('all', array('conditions' => array('User.created' => $date)));
于 2012-11-26T23:21:33.697 回答
0

您应该为此使用 CakeTime 方法或手动断言您只检查这一特定日期的日期部分。

http://book.cakephp.org/2.0/en/core-utility-libraries/time.html#CakeTime::dayAsSql

'conditions' => CakeTime::dayAsSql($date, 'created')
于 2012-11-26T23:24:27.883 回答