2015-02-12 3 views
5
$time = new \DateTime('now'); 
$today = $time->format('Y-m-d'); 
$programs=Programs::find()->where(['close_date' >= $today])->all(); 

Это код для современных программ, close_date больше today's date. Я получаю сообщение об ошибке:Как сравнить даты из базы данных в Yii2

"Invalid Parameter -yii\base\InvalidParamException Operator '1' requires two operands".

+1

Не нужно строить дату, подобную этой, вы можете использовать 'new \ yii \ db \ Expression ('NOW()')' – soju

ответ

7

Если вы хотите написать where состояние как массив код должен выглядеть так:

$programs = Programs::find()->where(['>=', 'close_date', $today])->all(); 

Проверить official documentation для более подробной информации:

Additionally you can specify arbitrary operators as follows: A condition of ['>=', 'id', 10] will result in the following SQL expression: id >= 10 .

2

Или как этот код:

$programs = Programs::find()->where('close_date >= :close_date', [':close_date' => $today])->all(); 
Смежные вопросы