Как проверить что дата не меньше сегодня?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Как проверить что дата не меньше сегодня?

Сообщение Chelobaka »

Здравствуйте,
Не нашел встроенного валидатора, решил таким способом но сомнения что не нашел встроеннго не покидают.

Код: Выделить всё

public function rules() {
 [['date'], 'checkDate'],
 }

Код: Выделить всё

public function checkDate($attribute_name, $params) {
        if ($this->date <= strtotime('NOW')) {
            $this->addError('date', Yii::t('transfer', 'Вы не можете сделать это задним числом.'));
            return false;
        }
    }
Usick
Сообщения: 42
Зарегистрирован: 2017.04.11, 12:07

Re: Как проверить что дата не меньше сегодня?

Сообщение Usick »

Из встроенного первое что приходит на ум - compare.
Примерно так:

Код: Выделить всё

['date', 'compare', 'compareValue' => strtotime('NOW'), 'operator' => '>=', 'message' => Yii::t('transfer', 'Вы не можете сделать это задним числом.')],
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Как проверить что дата не меньше сегодня?

Сообщение Chelobaka »

Usick писал(а): 2019.08.07, 19:21 Из встроенного первое что приходит на ум - compare.
Примерно так:

Код: Выделить всё

['date', 'compare', 'compareValue' => strtotime('NOW'), 'operator' => '>=', 'message' => Yii::t('transfer', 'Вы не можете сделать это задним числом.')],
Спасибо, но есть другая проблема с использованием данного правила.
В виде у меня отображается дата как 10-10-1986 и как следсвие валидаци не проходит! BeforeValidate не помогает.
То есть js валидация формы. Отключать не вариант т.к надо проверять не пустое ли.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Как проверить что дата не меньше сегодня?

Сообщение yiiliveext »

Используте whenClient, код для проверки на клиенте https://jsfiddle.net/qL3vzedm/
Ответить