laravel日本時間に時刻合わせ。反映されない時の対処法

製作 プログラム

最終更新日:2019/03/12

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

laravelを日本時間にする

laravelはインストール直後はUTCっていうタイムゾーンになっていて、MySQL上もphp上もどちらもめちゃくちゃ時間がずれてます。

また、タイムゾーンをちゃんと日本時間に設定したつもりでもなぜかそのタイムゾーン設定が有効にならない場合もあり、つまるポイントだと思います。

という事で今回はlaravelでUTCから日本時間へと設定しなおす方法と、それからなぜかタイムゾーン設定が有効にならない時の対処法について紹介しますね。

  1. laravelを日本時間にする
  2. 「config/app.php」でタイムゾーン指定
  3. それでも時刻が合わない時
  4. まとめ

「config/app.php」でタイムゾーン指定

まずはタイムゾーンを設定していきます。

laravelプロジェクト内「config/app.php」を開き、「timezone」と書いてあるところを探します。そして、その横に書いてある「UTC」を…

'timezone' => 'Asia/Tokyo',

みたいにAsia/Tokyo指定にする!たったこれだけでlaravelのMySQL、そしてphpも日本時間になります。

こんだけでいいの?と思っちゃいますよね。わたしも最初、データベースの時刻合わせして…それからphpの設定もして…、あともしかしたらサーバーのもしなくちゃいけないんじゃ…?と考えていました。

他のフレームワークとか使ったことないし、サーバーやデータベースに特に詳しいわけでもないんで、これがどれほど普通の事なのかはわかりませんが、とにかくlaravelではconfig変えるだけで時刻が変わってくれます。

laravelの時刻を合わせるには「config/app.php」のタイムゾーンをAsia/Tokyoに変更するだけ!

それでも時刻が合わない時

上記の「config/app.php」のタイムゾーンの一行を変更するだけで9割はきちんと日本時間になるはずです。

でも残りの1割はなんでかうまく時刻が変わらない時があります。

(例えば、MySQLのcreated_atとかupdated_at、phpのDateTimeとかがずれたままになっているんですよね)

こういった時は環境変数のキャッシュをクリアするとうまくいきます。キャッシュのクリア方法は…

php artisan config:clear

これでデータベースのcreated_atの時間も、phpのDateTimeなどの日付クラスから取得できる時間も無事日本時間になったはずです。

(そのほかよく使うlaravelのコマンド集「laravelコマンド集」)

まとめ

今回はlaravelで時刻を日本時間に合わせる方法と、あわせたはずなのに反映されない場合の対処法を紹介しました。

ネットで調べてもいろんな事を書いている記事が多くて、けっこう戸惑ってしまいました。

あとlaravelでなんでか設定が反映されない時はとりあえず環境変数のキャッシュクリアをすると反映されることが多いです。参考にしてくださいね。

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /