【CakePHP4】デフォルト設定だと、Cakeアプリ内だけタイムゾーンがUTCになってしまうので日本時間に設定変更【殴り書き】

Cake2脳で作ってたらちょっとだけハマってしまったのでメモ。

もちろん php.ini では Asia/Tokyo になっているのに…

開発を開始するときにまず設定するべきものですが…(・_・)、急いでたら後回しになっちゃうよね。基底の設定。

Cake4インストール直後の状態で Cake内でdateを実行すると…

echo date(DATE_ISO8601);
//2020-04-08T00:43:34+0000

UTCの時刻で処理されてしまいます。なんで?

原因:bootstrap.php 内で、Cakeアプリ上で使うtimezoneがApp.defaltTimezone の値で設定されている

//bootstrap
/*
 * Set the default server timezone. Using UTC makes time calculations / conversions easier.
 * Check http://php.net/manual/en/timezones.php for list of valid timezone strings.
 */
date_default_timezone_set(Configure::read('App.defaultTimezone'));

特に世界進出を企んでいるわけではないので、日本時間に固定したいと思います。

config/app.php

    'App' => [
        'namespace' => 'App',
        'encoding' => env('APP_ENCODING', 'UTF-8'),
        'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
        'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'),
        'base' => false,

ここの、defaultTimezoneをAsia/Tokyo に。

'App' => [
    'namespace' => 'App',
    'encoding' => env('APP_ENCODING', 'UTF-8'),
    'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
    'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'Asia/Tokyo'),
    'base' => false,

日本時間になりました(>_<)

echo date(DATE_ISO8601);
//2020-04-08T09:43:51+0900 

Cake4、探り探りで老化が際立ってきたおじさんの脳には大変です(>_<)誰かやさしく教えて(´д`)

コメントを残す

メールアドレスが公開されることはありません。