Wątek przeniesiony 2015-09-01 11:11 z PHP przez dzek69.

walidacja daty

0

Witam, mam problem a mianowcicie jest taki kod, który wydaje się być w porządku:

 <?php

namespace common\components\validators;

use yii\validators\Validator;

class CheckDateValidator extends Validator {
    
    public $CreatedAt;
  

    public function validateAttribute($attribute, $params)
            {
            $today=date('Y-m-d');
            $selectedDate=date($this->CreatedAt);
            if($selectedDate<$today)
            {
            $this->addError($attribute, $params, 'Date must be later');
            }
            }

}

piszę to we frameworku yii. Chciałem aby po wybraniu daty wczesniejszej od dzisiajszej wyskoczyl komunikat data musi byc pozniejsza jednak niezaleznie jaka date wybiore to wyskakuje mi ten message. Ktoś pomoże?

0

zrób sobie var_dump($selectedDate=date($this->CreatedAt)); i pomyśl co zrobiłeś źle, posłuż się dokumentacją w razie wątpliwości ;)

0

zrobilem vardump i nic nie wykazuje siedze nad tym juz duzo czasu widzisz tutaj błąd?

0

no i co dostałeś w tym var_dump?

poprowadzę Cię za rączkę, skoro nie chcesz wykazać inicjatywy

0

Dobra zrobilem tak i dziala

 <?php

namespace common\components\validators;

use yii\validators\Validator;
use Yii;
class CheckDateValidator extends Validator {
    
    public $CreatedAt;
    public $today;
    public $selectedDate;
  

    public function validateAttribute($attribute, $params)
            {
            $today=date('Y-m-d');
            $selectedDate=Yii::$app->request->post('CreatedAt');
            if($selectedDate<$today)
            {
            $this->addError($attribute, $params, 'Date must be later');
            }
            }

}

tylko, że teraz nie wyswietla errora tylko po prostu nic sie nie dzieje a chcialbym zeby wyswiwtlatl sie ten error ze data musi byc pozniejsza wiesz jak to naprawic?

0

dobra, po prostu wejdź w dokumentację funkcji date i sprawdź ilość, kolejność i znaczenie parametrów, następnie pomyśl o tym jakie ty parametry podałeś w linii, którą sugerowałem, żebyś zrobił dumpa z niej.

0

Dobra zrobilem tak i dziala

 <?php

namespace common\components\validators;

use yii\validators\Validator;
use Yii;
class CheckDateValidator extends Validator {
    
    public $CreatedAt;
    public $today;
    public $selectedDate;
  

    public function validateAttribute($attribute, $params)
            {
            $today=date('Y-m-d');
            $selectedDate=Yii::$app->request->post('CreatedAt');
            if($selectedDate<$today)
            {
            $this->addError($attribute, $params, 'Date must be later');
            }
            }

}

tylko, że teraz nie wyswietla errora tylko po prostu nic sie nie dzieje a chcialbym zeby wyswiwtlatl sie ten error ze data musi byc pozniejsza wiesz jak to naprawic?

1 użytkowników online, w tym zalogowanych: 0, gości: 1