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で保存されなくなるだけなので、状況に応じて変更してください。