Страница 1 из 1

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

Добавлено: 2019.08.07, 16:59
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;
        }
    }

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

Добавлено: 2019.08.07, 17:46
kukuruku

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

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

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

['date', 'compare', 'compareValue' => strtotime('NOW'), 'operator' => '>=', 'message' => Yii::t('transfer', 'Вы не можете сделать это задним числом.')],

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

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

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

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

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

Добавлено: 2019.08.21, 15:06
yiiliveext
Используте whenClient, код для проверки на клиенте https://jsfiddle.net/qL3vzedm/