我正在尝试在Doctrine中编写一个查询,该查询将返回在特定天数内添加的记录,我在查询中有这一行但是没有按预期工作:
$q->andWhere('g.date_added >= ?', array(strtotime('-'.$recent_interval.' day')));
date_added是一个mySQL时间戳。
recent_interval是天数。
我在Zend Framework 1.11.7中使用Doctrine-1.2.4
感谢帮助。
答案 0 :(得分:3)
MySQL时间戳的格式为YYYY-MM-DD HH:MM:SS
。您将其与 UNIX时间戳进行比较,后者是从strtotime()
返回的数字。
您需要首先将UNIX时间戳转换为MySQL时间戳,以使其正常工作。
要格式化UNIX时间戳,可以使用PHP date()
函数。格式为Y-m-d H:i:s
。
示例:
$compare = date('Y-m-d H:i:s', strtotime('-'.$recent_interval.' day'));
$q->andWhere('g.date_added >= ?', array($compare));
答案 1 :(得分:1)
您忘记将数组更改为Doctrine理解的内容:
以下说明您该怎么做:
- > andWhere('g.date_added> =?',日期('Y-m-d',strtotime(“ - 2周”)))