2015-12-11 6 views
0

Я хочу сравнить 2 даты в правилах.
Когда я ввожу дату и время в start_date и end_date, я получаю сообщение об ошибке «Конец должен быть больше или равен Start» Начальные_данные и end_date являются полями datetime. Я ищу решение.Сравните две даты в правилах yii2

return [ 
     ['end_date', 'date', 'format' => 'php:Y-m-d H:i:s', 'skipOnEmpty' => false], 
     ['start_date', 'date', 'format' => 'php:Y-m-d H:i:s', 'skipOnEmpty' => false], 
     ['end_date', 'compare', 'compareAttribute' => 'start_date', 'operator' => '>='], 
    ]; 
+0

Это опечатка в вашем вопросе, потому что у оператора есть>, not> = –

+0

Нет опечатки, я сравниваю дату и время. И значение end_date должно быть выше. – Hans

+0

Ну, тогда я не понимаю вашу проблему, если вы введете ту же дату для дат начала и окончания, как вы сказали в своем вопросе, тогда ваша проверка правильная работа –

ответ

1
[ 'endDate', 'compareDate', 'compareAttribute' => 'startDate', 'operator' => '>=', 'type' => 'datetime', 'message' => 'Invalid Date' ], 
+3

Можете ли вы объяснить, что это делает? – tversteeg

-1
  [ 'endDate', 'compare', 'compareAttribute' => 'startDate', 'operator' => '>=', 'type' => 'datetime', 'message' => 'endDate must be after staartDate' ], 

это должно работать в Yii2. Правило сравнивает 2 атрибута как даты.

Смежные вопросы