2016-04-09 5 views
1

特定のイベント(イベントの日付とイベントの時刻)を表示するためにdatetimesを使用する少しの拡張機能を作成しましたが、データベースからフロントエンドに正しいdatetimeを取得しようとすると、TYPO3の日時の問題を避けるにはどうしたらいいですか?

私はTYPO3のバックエンドを経由して各イベントの日時を設定することができます。

enter image description here

をしかし、私はのようなフロントエンドでこの値を取得しようとします

<f:format.date format="d.m.Y - H:i:s">{event.appointment}</f:format.date> 

次に出力ではありません "10.04.2016 - 08:00:00" "10.04.2016 - 10:00:00"です。

この現象を回避するにはどうすればよいですか?インストールツールを使用してタイムゾーンを設定しました。

[SYS][phpTimeZone] = Europe/Berlin 

しかし、私は常に間違ったdatetimeを取得します。私はこのような何かをしようとした場合:私は、データベースを見ている場合、私は正しい日時が格納されていることを見ることができます

{"date":"2016-04-09 20:23:38.000000","timezone_type":3,"timezone":"Europe\/Berlin"} 

DebugUtility::debug(new \DateTime()); 

はその後、私は正しい出力を得る

enter image description here

私は間違ったdatetime、何か提案を得た理由は分かりませんか?

答えて

1

TYPO3内で日付が変換されるのに矛盾がありますが、TCEとExtbaseでは動作が異なります。 Extbaseは、すべての日付がUTCでDBに格納されているとみなし、データマッピングプロセスで日付をUTCから理論的に現地時間に変換します(IMHOは実行しないでください。インストールツールで設定する必要があります)。 Install Tool>All configurationsの場合、[SYS][phpTimeZone]の設定を見つけて、その値をUTCに設定します。

こうすると、ExtbaseはあなたがUTCゾーン内にいると思って、php.iniで何も変更する必要はありません。

+0

ああ、ありがとう、魅力のように動作していただきありがとうございます。 – Fox

関連する問題