Laravel:更新日時などの時間ずれを解消する(解決編)
目次
Laravel:更新日時などの時間ずれを解消する(解決編)
以前の記事の続きです。
前回記事で修正した箇所はconfig\app.phpのtimezoneでした。
しかし【’timezone’ => ‘Asia/Tokyo’,】としてもUTCが採用されている様でした。
まず先に結論を記載
無事にこれで解決できました。
bootstrap\cashe\config.php のtimezoneを’Asia/Tokyo’に設定
1 2 3 4 5 6 7 |
<?php return array ( 'app' => array ( 'env' => 'local', 'debug' => true, 'timezone' => 'Asia/Tokyo', .....省略..... |
調査:PHPで現在時間を表示してみる
適当な個所(どこでもいいです)に下のスクリプトを記載して動作を確認します。
1 2 3 4 5 6 |
<?PHP print date('H:i e'); ini_set('date.timezone', 'Asia/Tokyo'); print date('H:i e'); ?> |
タイムゾーンがUTCのままの様なので想定結果は【上下で時間がズレる】です。
しかし、想定とは異なる結果が出ました。
10:58 UTC10:58 UTC
…なぜ2つともUTCになるの??
非常に強力なやつがタイムゾーンを管理しているようです。
※答えは上のconfig\app.phpです。
調査:timezone設定のあるファイルを抜き出してみる
IDEで検索を掛けたところ、59ファイルほどでtimezone の記載があるとの事。
その内17ファイルで UTC の表記を発見しました。
- config\app.php
- bootstrap\cashe\config.php
- vendor\bin\phpunit.php
- vendor\dompdf\dompdf\src\Adapter\PDFLib.php
- vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\LoadConfiguration.php
- vendor\monolog\monolog\phpunit.xml.dist
- vendor\monolog\monolog\src\Monolog\Logger.php
- vendor\mtdowling\cron-expression\src\Cron\HoursField.php
- vendor\mtdowling\cron-expression\tests\Cron\CronExpressionTest.php
- vendor\nesbot\carbon\src\Carbon\Carbon.php
- vendor\nesbot\carbon\src\Carbon\CarbonPeriod.php
- vendor\phpunit\phpunit\appveyor.yml
- vendor\phpunit\phpunit\phpunit
- vendor\sebastian\comparator\src\DateTimeComparator.php
- vendor\sebastian\global-state\phpunit.xml
- vendor\symfony\http-foundation\Response.php
- vendor\symfony\http-foundation\ResponseHeaderBag.php
この内【’timezone’ => ‘UTC’,】と記載されているのは bootstrap\cashe\config.php のみでした。
と言うことで、bootstrapを修正したところ無事解決できました。
まとめ
やはりお手本を見てもうまくいかない事ってありますよね、個々設定は違うわけですから。
そんな時は『IDEで検索⇒目星を付ける⇒変更⇒テスト』という動作がとても役立ちます。
いやぁ~、解決してよかった。
-
前の記事
Laravel:端末によって表示内容を変える方法 2019.02.20
-
次の記事
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 2019.02.20
コメントを残す