sql >> Databasteknik >  >> RDS >> Mysql

ZF2 validerar datum- och tidsformat PT_BR alltid Inmatningen verkar inte vara ett giltigt datum

Efter en lång tid att uppmärksamma detta problem hittade jag den rätta och snabba lösningen. Efter 6 månaders vetenskap fick jag:

Precis allt:

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

Dokument och personer över internet gör det inte tydligt, men att ställa in Format fungerar bara på det här formuläret.

Och för att få tag på detta till Entity måste du skriva din egen Hydrator som utökar 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 enkelt att arbeta med vilket datumformat som helst. Du kan utöka ytterligare med att göra Locale-påståenden på denna Custom Hydrator som du vill.



  1. Finns det något sätt att visa PRINT-resultat med SQL-server JDBC-drivrutin?

  2. Introduktion till Python SQL-bibliotek

  3. MySQL-fråga med flera tabeller ger för många resultat

  4. Hur man skapar en meny i SQLPlus eller PL/SQL