sql >> データベース >  >> RDS >> Mysql

ZF2検証日付と時刻の形式PT_BR常に入力が有効な日付ではないようです

    長い間この問題に注意を払った後、私は適切で迅速な解決策を見つけました.6か月の科学の作成後、私は次のことを学びました:

    正解:

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

    ドキュメントやインターネット上の人々はそれを明確にしませんが、フォーマットを設定することはこのフォームでのみ機能します。

    これをエンティティに取り込むには、DoctrineHydratorを拡張する独自のHydratorを作成する必要があります:

    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);
        }
    }
    

    これにより、任意の日付形式での作業が簡単になります。必要に応じて、このカスタムハイドレーターでロケールアサーションをさらに作成することができます。



    1. MicrosoftIgniteセッションレコーディングが表示できるようになりました。

    2. 子レコードの選択、値の乗算、および親レコードの更新をトリガーします

    3. mysql -vコマンドラインエラー(linux / ubuntu)

    4. MySQLテーブルからランダムな行を1つ選択する際の問題