walidacja daty

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

ZW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:53
0

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

Kopiuj
 <?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?

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
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 ;)


ZW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:53
0

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

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
0

no i co dostałeś w tym var_dump?

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


ZW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:53
0

Dobra zrobilem tak i dziala

Kopiuj
 <?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?

edytowany 1x, ostatnio: zwiro
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
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.


ZW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:53
0

Dobra zrobilem tak i dziala

Kopiuj
 <?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?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.