Mysql
 sql >> Database >  >> RDS >> Mysql

ZF2 convalida formato data e ora PT_BR sempre L'immissione non sembra essere una data valida

Dopo aver prestato molta attenzione a questo problema ho trovato la soluzione giusta e rapida. Dopo 6 mesi di attività scientifica, ho ottenuto:

Giusto tutto:

    $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.

Documenti e persone su Internet non lo rendono chiaro, ma l'impostazione del formato funziona solo su questo modulo.

E per afferrarlo a Entity, devi scrivere il tuo Hydrator che estende 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);
    }
}

È semplice lavorare con qualsiasi formato di data. Puoi estendere ulteriormente le affermazioni sulle impostazioni locali su questo idratore personalizzato come desideri.