Таблица запросов в DQL для получения записей, созданных за последнюю неделю - PullRequest
1 голос
/ 05 июля 2011

Я пытаюсь написать запрос в Doctrine, который будет возвращать записи, добавленные в течение определенного числа дней, у меня есть эта строка в моем запросе, но она не работает должным образом:

$q->andWhere('g.date_added >= ?', array(strtotime('-'.$recent_interval.' day')));

date_addedявляется отметкой времени MySQL.

Recent_interval - количество дней.

Я использую Doctrine-1.2.4 с Zend Framework 1.11.7

Оцените помощь.

Ответы [ 2 ]

3 голосов
/ 05 июля 2011

Формат отметки времени 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 голос
/ 05 июля 2011

Вы забыли изменить массив на то, что Doctrine понимает:

Ниже показано, что делать:

-> andWhere ('g.date_added> =?', Дата ('Y-m-d', strtotime ("- 2 недели")))

...