Lumen を初めて試したとき、データベースから検出された時間が、データベースに保存されている TIMESTAMP 時間よりも 8 時間遅いという問題が発生しました。これは明らかにタイムゾーン設定の問題です。 Lumen のタイムゾーン設定方法、皆さんのお役に立てれば幸いです。
Laravel 4.x および 5.0 の経験によれば、config/app.php で「timezone」パラメータを「PRC」に設定するだけで済みます。/vendor/laravel/lumen-framework / で Lumen config ディレクトリを見つけます。 configパスを追加しましたが、config/app.phpのパラメータオプションにtimezoneパラメータのオプションがなく、手動で追加しても無効となります。
その後、Laravel 5 の .env ファイルについて考えたところ、Lumen の .env ファイルにはタイムゾーン設定のオプションがないことがわかりました。
config ディレクトリに戻り、config/database.php の設定を確認します。mysql のデフォルト設定は次のとおりです:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', 3306), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => env('DB_PREFIX', ''), 'timezone' => env('DB_TIMEZONE','+00:00'), 'strict' => false, ],
ここにはデータベースのタイムゾーン設定があり、デフォルトは +00 です。 :00 (UTC 時間) が +08:00 に変更されました。問題は解決しました。プロジェクトで .env 構成ファイルが有効になったため、最終的に .env ファイルに行が追加されました
DB_TIMEZONE=+08:00
DB_TIMEZONE=+08:00
数据库 timezone 问题解决。
数据库的 timezone 问题虽然解决了, 但是 app 的 timezone 问题还没解决, 全局搜索 lumen 项目, 找用到 timezone 的地方, 在 /vendor/laravel/lumen-framework/src/Application.php
文件中找到了初始化 lumen timezone 部分的代码
/** * Create a new Lumen application instance. * * @param string|null $basePath * @return void */ public function __construct($basePath = null) { date_default_timezone_set(env('APP_TIMEZONE', 'UTC')); $this->basePath = $basePath; $this->bootstrapContainer(); $this->registerErrorHandling(); }
代码中使用的 .env 参数为 APP_TIMEZONE, 值为 UTC, 在这里将 UTC 改为 PRC, 或者在 .env 文件里添加
APP_TIMEZONE=PRC
/vendor/laravel/lumen-framework でタイムゾーンが使用されている場所を見つけます。 /src/Application.php ルーメンのタイムゾーン部分を初期化するコードがファイル内に見つかりました<p><strong></strong></p><pre class="brush:plain;">APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00</pre><p> コードで使用されている .env パラメータは APP_TIMEZONE で、値は UTC から PRC に変更します。ここに、または .env ファイル <code>APP_TIMEZONE=PRC
に
を追加します
Lumen タイムゾーン設定の概要
.env ファイルを編集して構成を追加します
/vendor/laravel/lumen-framework/config/database.php /vendor/laravel/lumen-framework/src/Application.php.env 構成ファイルが有効になっていない場合は、
rrreee
を編集して APP_TIMEZONE および DB_TIMEZONE パラメータを変更しますそれぞれの値。Dotenv::load(__DIR__. '/../');
追記:
ルーメンはデフォルトでグリニッジ時間を使用するため、北京時間に変換する必要があります。
APP_TIMEZONE=PRC を .env に追加しますDB_TIMEZONE=+08:00これにより、時間が正確になります
Lumen Framework のカスタム依存関係の注入についての簡単な説明🎜🎜🎜🎜PHP の日付and time関数システムのタイムゾーン設定🎜🎜🎜🎜Linux PHP MySQLのタイムゾーン設定方法詳細解説_PHPチュートリアル🎜🎜以上がLumen タイムゾーン タイムゾーン設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。