EC-CUBE4でDBへの時間をUTCで保存させないようにする方法

EC-CUBE4から国際化対応が行われており、DBの時間の持たせ方もUTCに対応されています。

データ型の変更 by chihiro-adachi · Pull Request #2185 · EC-CUBE/ec-cube · GitHub

海外なども見据えたサイトであればこのままで問題ありませんが、日本国内のみを対象としており、別システム連携があって直接DBを参照する場合、UTCだと何かと不便な時があるため、UTCで保存させない方法を説明します。

修正方法は非常に簡単で、

  • app/config/eccube/packages/doctrine.yaml
        types:
             datetime: 'Eccube\Doctrine\DBAL\Types\UTCDateTimeType'
             datetimetz: 'Eccube\Doctrine\DBAL\Types\UTCDateTimeTzType'

と表記されている箇所を、

#        types:
#            datetime: 'Eccube\Doctrine\DBAL\Types\UTCDateTimeType'
#            datetimetz: 'Eccube\Doctrine\DBAL\Types\UTCDateTimeTzType'

コメントアウトするだけです。

これを行うことでDBに保存される時間はUTCでは無くなります。

既に本番運用されている方でも、この修正を加えてもDBの時刻がUTCで保存されなくなるだけなので、状況に応じて変更してください。