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

ZF2 validerer dato- og tidsformat PT_BR altid Indtastningen ser ikke ud til at være en gyldig dato

Efter lang tid at have været opmærksom på dette problem fandt jeg den rigtige og hurtige løsning. Efter 6 måneders videnskab fik jeg:

Helt klart:

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

Dokumenter og personer over internettet gør det ikke klart, men at indstille Format virker kun på denne formular.

Og for at få fat i dette til Entity, skal du skrive din egen Hydrator, der udvider 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);
    }
}

Det gør det nemt at arbejde med ethvert datoformat. Du kan udvide yderligere med lokalitetspåstande på denne Custom Hydrator, som du vil.



  1. AWS RDS MySql - hvordan tillader du adgang efter indstilling af 'Offentligt tilgængelig'

  2. PostgreSQL:Hvorfor kan psql ikke oprette forbindelse til serveren?

  3. Stringliste i SqlCommand gennem parametre i C#

  4. Hvad er en genereret kolonne?