cakePHP3.9 をXAMPP上で開発しているプロジェクトをレンタルサーバ(XSERVER)上で動作させようとしたら、データベースの日本時間設定がうまくいかなかったので、まとめてみます。
まず、あちこちのサイトに書いてあるこの方法。
config/app.php
'App' => [
;
'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'Asia/Tokyo'),
;
'Datasources' => [
'default' => [
;
'timezone' => 'Asia/Tokyo',
;
この方法では XAMPP上のプロジェクトはちゃんと動作するけど、XSERVERで実行すると
Unknown or incorrect time zone: 'Asia/Tokyo'
というエラーが発生して、動作しません。
別のWEBサイトでの方法では、'Asia/Tokyo' の代わりに 'JST' を指定すればOK
という情報もありましたが・・・
Unknown or incorrect time zone: 'JST'
XSERVERでは動きませんでしたね。
MySQL の mysql テーブル timezoneをインポートして設定するといいのでしょうけれど
XSERVERでそれをやる方法がわかりませんでした
で、最終的にうまくいった方法を披露しておきます。
'App' => [
;
'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'Asia/Tokyo'),
;
'Datasources' => [
'default' => [
;
'timezone' => '+9:00',
;
Datasources側だけ、timezoneを '+9:00' に設定するわけです。
これでデータベース内の記録日時とWEBサイトで表示される日時を同期させることができました。
めでたし、めでたし。
0 件のコメント:
コメントを投稿