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

製作 プログラム

2019/03/12(火)

ラムネグから一言:無料アプリを3つ作りました。記事下部にリンクがあるので見てみてくださいね。さっそくみてみる

laravelを日本時間にする

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

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

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

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

【どどん!】ラムネグではただいまアプリを絶賛提供中!さあ、選べる3つの無料アプリ!あなたはどれにする?

【わたガチャ】

あなただけのガチャを作ろう♪

すたーと!

【みんガチャ】

みんなで一つのガチャを作りあげよう♪

すたーと!

【litty-リティ】

秘密のメッセージをフォロワーさんに送っちゃおう!

すたーと!