Mysql
 sql >> Baza danych >  >> RDS >> Mysql

ZF2 sprawdzanie poprawności formatu daty i czasu PT_BR zawsze Dane wejściowe nie wydają się być poprawną datą

Po długim czasie zwracania uwagi na ten problem znalazłem właściwe i szybkie rozwiązanie. Po 6 miesiącach tworzenia nauki, uzyskałem:

Dobrze wszyscy:

    $traindate = new Element\DateTime('trainDate');
    $traindate->setAttributes(array(
        'name' => 'trainDate',
        'id' => 'trainDate',
        'size' => '30',
        'class' => 'datepicker',
    ));
    $traindate->setFormat('d/m/Y'); //ONLY WORKS ON THIS FORMAT.

Dokumenty i ludzie w Internecie nie wyjaśniają tego, ale ustawienie formatu działa tylko w tym formularzu.

Aby przekazać to Entity, musisz napisać własny Hydrator rozszerzający DoctrineHydrator:

namespace Application\Hydrator;
use DoctrineModule\Stdlib\Hydrator\DoctrineObject;

class MyCustomHydrator extends DoctrineObject {
    protected function handleTypeConversions($value, $typeOfField) 
    {

        if($typeOfField == 'datetime'){
            return \DateTime::createFromFormat('d/m/Y', $value);
        }

        return parent::handleTypeConversions($value, $typeOfField);
    }
}

Ułatwia pracę z dowolnym formatem daty. Możesz rozszerzyć zakres wykonywania asercji regionalnych na tym niestandardowym Hydratorze, jak chcesz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL wybierz DATETIME podobnie do minuty

  2. Jak usunąć rekord MySQL po określonym czasie?

  3. Dlaczego rozmiar tabeli InnoDB jest znacznie większy niż oczekiwano?

  4. Wyświetlanie danych z bazy danych za pomocą PDO

  5. Czy standardowe połączenie mysql przez port 3306 jest bezpieczne w Sequel Pro?