Zend_Dd mysqlのタイムゾーンをapplication.iniを使って指定する

ZendFramework

Azureなどのcloudサービスを使うとタイムゾーンが UTCって事がよくあります。
NOW()やCURRENT_TIME()の実行結果が9時間違う時はこのせいです。

mysqlの設定ファイルで日本時間に直してしまうのが王道ですが、ごにょごにょできない場合などapplication.iniで設定できます。

resources.db.adapter = "pdo_mysql"
resources.db.params.host =  
resources.db.params.username = 
resources.db.params.password = 
resources.db.params.dbname = 
resources.db.params.charset = "utf8"
resources.db.params.driver_options.1002 = "set time_zone = '+09:00'"
resources.db.isDefaultTableAdapter = true
resources.db.defaultMetadataCache = 

resources.db.params.charsetresources.db.params.driver_options.1002 は同時に設定できないので、同時に使う時は以下のように行います。

resources.db.params.driver_options.1002 = "SET NAMES 'utf8', CHARACTER SET 'utf8', time_zone = '+09:00'"

ちなみにtime_zoneの指定をAsia/Tokyoにしたらダメだった。
これはサーバーに依存するのかな?

参考

[Php] application.iniでデータベースのタイムゾーンを設定する方法
MySQLのタイムゾーンを変更する
MySQLのTimeZoneをJSTからUTCに変更する

コメント

タイトルとURLをコピーしました