見出し画像

CakePHP3で日本時刻に

CakePHP3のタイムゾーンは協定世界時UTCである。

だが。ここは日本だ。

UTCだといろいろメンドイので日本に設定変更する必要がある。


config/bootstrap.php

date_default_timezone_set('Asia/Tokyo');

config/app.php

    'Datasources' => [
        'default2' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => '127.0.0.1',
            'username' => 'XXXX',
            'password' => 'XXXX',
            'database' => 'XXXX',
            'encoding' => 'utf8',
            'timezone' => 'Asia/Tokyo',
            'flags' => [],
          :
          :
          :
          :

まぁ、この2箇所くらいのtimezoneをAsia/Tokyoに変えるだけだが。


sudo mysql -u root
select * from mysql.time_zone;

これ叩いてレコードが0件とか言われたら、データ追加が必要なり。


ここからデータ持ってくる。

https://dev.mysql.com/downloads/timezones.html

The other set is for 5.7+. Each file contains SQL statements to fill the tables:
timezone_2018e_posix_sql.zip - POSIX standard

このtimezone_2018e_posix_sql.zipってのをダウンロードする。


ま、こんな感じ?

wget https://downloads.mysql.com/general/timezone_2018e_posix_sql.zip
unzip timezone_2018e_posix_sql.zip

実行する

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

場合によってはsudoしなきゃダメかも。

mysql_tzinfo_to_sql /usr/share/zoneinfo | sudo mysql -u root mysql


で。

さっき0件って出たSQLを再度叩いて。データ出たらOK!


mysql再起動。ま、ubuntuならこんな感じ。

sudo /etc/init.d/mysql restart
sudo /etc/init.d/apache2 restart

あ、アパッチも再起動しちゃってるーー。


ま、これで終わりですー。

この記事が気に入ったらサポートをしてみませんか?