Symfony CRMでBootstrap Date Range Pickerを実装しています。特定のホリデーシーズンの日付範囲を選択するためです。Symfonyで日付を書式設定する際の問題
ただし、データをデータベースに追加するには、開始日と終了日の形式である必要があります。データベースはDateTime
オブジェクトを予期していますが、クライアントのフロントエンドで読みやすくする必要があります。
これは、バックコントローラ一度提出に何が渡されるかされています。私はこれを取得するデータベースに永続化する場合を除き
$dates = $form['startDate']->getData();
$date_bits = explode(" - ",$dates);
$startDate = \DateTime::createFromFormat('Y-m-d',$date_bits[0]);
$endDate = \DateTime::createFromFormat('Y-m-d',$date_bits[1]);
:私のコントローラで
20/5/2017 - 20/7/2017
、私は次のコードを使用しますエラー:
Fatal error: Call to a member function format() on boolean in /vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php on line 53
だから私は代わりにこの方法を試しました:
$startDate = new \DateTime(str_replace("/","-",$date_bits[0]));
$endDate = new \DateTime(str_replace("/","-",$date_bits[1]));
$startDate = $startDate->format('Y-m-d');
$endDate = $endDate->format('Y-m-d');
しかし、私は同じエラーが表示されます。私はここで間違って何をしていますか?
EDIT:実際には2番目のコードブロックでエラーが発生しました。文字列にformat()
が呼び出されています。あなたはこのしてくださいしてみてくださいCreateFromFormat使用したい場合は
$startDate = new \Datetime($date_bits[0]);
$endDate = new \Datetime($date_bits[1]);
:
通常の日付と
''のDateTime :: createFromFormat( 'D/M/Y')との何が問題なのですか? [strftime()で理解できる日付と時刻の形式](http://php.net/manual/en/datetime.formats.php)を読んでください。 – axiac
日付フィールドに期待されるように 'Y-m-d'のようなデータベースに入る必要があります。 –
'DateTime :: createFromFormat( 'd/m/Y'、$ date_bits [0]) - > format( 'Y-m-d') ' –