Laravel:更新日時などの時間ずれを解消する(解決編)

Laravel:更新日時などの時間ずれを解消する(解決編)

Laravel:更新日時などの時間ずれを解消する(解決編)

以前の記事の続きです。

前回記事で修正した箇所はconfig\app.phpのtimezoneでした。
しかし【’timezone’ => ‘Asia/Tokyo’,】としてもUTCが採用されている様でした。

まず先に結論を記載

無事にこれで解決できました。

bootstrap\cashe\config.php のtimezoneを’Asia/Tokyo’に設定

調査:PHPで現在時間を表示してみる

適当な個所(どこでもいいです)に下のスクリプトを記載して動作を確認します。

タイムゾーンがUTCのままの様なので想定結果は【上下で時間がズレる】です。
しかし、想定とは異なる結果が出ました。

10:58 UTC10:58 UTC

…なぜ2つともUTCになるの??
非常に強力なやつがタイムゾーンを管理しているようです。
※答えは上のconfig\app.phpです。

調査:timezone設定のあるファイルを抜き出してみる

IDEで検索を掛けたところ、59ファイルほどでtimezone の記載があるとの事。
その内17ファイルで UTC の表記を発見しました。

  1. config\app.php
  2. bootstrap\cashe\config.php
  3. vendor\bin\phpunit.php
  4. vendor\dompdf\dompdf\src\Adapter\PDFLib.php
  5. vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\LoadConfiguration.php
  6. vendor\monolog\monolog\phpunit.xml.dist
  7. vendor\monolog\monolog\src\Monolog\Logger.php
  8. vendor\mtdowling\cron-expression\src\Cron\HoursField.php
  9. vendor\mtdowling\cron-expression\tests\Cron\CronExpressionTest.php
  10. vendor\nesbot\carbon\src\Carbon\Carbon.php
  11. vendor\nesbot\carbon\src\Carbon\CarbonPeriod.php
  12. vendor\phpunit\phpunit\appveyor.yml
  13. vendor\phpunit\phpunit\phpunit
  14. vendor\sebastian\comparator\src\DateTimeComparator.php
  15. vendor\sebastian\global-state\phpunit.xml
  16. vendor\symfony\http-foundation\Response.php
  17. vendor\symfony\http-foundation\ResponseHeaderBag.php

この内【’timezone’ => ‘UTC’,】と記載されているのは bootstrap\cashe\config.php のみでした。

と言うことで、bootstrapを修正したところ無事解決できました。

まとめ

やはりお手本を見てもうまくいかない事ってありますよね、個々設定は違うわけですから。

そんな時は『IDEで検索⇒目星を付ける⇒変更⇒テスト』という動作がとても役立ちます。

いやぁ~、解決してよかった。