sql >> Databáze >  >> RDS >> Mysql

ZF2 vždy ověřuje formát data a času PT_BR Vstup se nezdá být platným datem

Po dlouhé době, kdy jsem tomuto problému věnoval pozornost, jsem našel správné a rychlé řešení. Po 6 měsících vědecké práce jsem dostal:

Správně všechny:

    $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 a lidé přes internet to nevysvětlují, ale nastavení formátu funguje pouze na tomto formuláři.

A abyste to získali Entity, musíte napsat svůj vlastní Hydrator rozšiřující 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);
    }
}

Je to snadné pracovat s jakýmkoli formátem data. Můžete dále rozšiřovat provádění Locale stvrzení na tomto Custom Hydrator, jak chcete.



  1. „O“ v ORDBMS:PostgreSQL Inheritance

  2. Jaké jsou různé způsoby vkládání dat do SQL Server Table - SQL Server / TSQL Tutorial část 100

  3. Nainstalujte uloženou proceduru na více databází

  4. Jak nastavit proměnnou na výsledek uložené procedury uvnitř Trigger MYSQL?