今日、Lumen フレームワークを使用してコードを書いたとき、Lumen を初めて体験しました。問題が発生しました。データベースから見つかった時間は、データベースに保存されている TIMESTAMP 時間より 8 時間遅かったです。明らかにこれです。はタイムゾーン設定の問題です。1分以内に解決できると思っていましたが、間違いでした
#Laravel 4.xおよび5.0の経験によると、「timezone」パラメータを設定するだけで済みますconfig/app.php の「PRC」に変更します。パス /vendor/laravel/lumen-framework/config の下で Lumen の設定ディレクトリを見つけます。ただし、config/app.php のパラメータ オプションにはタイムゾーン パラメータ オプションがありません。手動で追加しても無効です。 そこで、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, ],In ここにはデータベースのタイムゾーン設定があります。デフォルトは 00:00 (UTC 時間) です。これを 08:00 に変更すると、問題は解決します。プロジェクトで .env 構成ファイルが有効になったため、最終的に
DB_TIMEZONE= 08:00
/ にあります。 vendor/laravel/lumen-framework/src/ ルーメンのタイムゾーン部分を初期化するコードは、 Application.php ファイル
#
/** * 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(); }The にあります。コードで使用されている env パラメータは APP_TIMEZONE で、値は UTC です。ここで、UTC を PRC に変更するか、
APP_TIMEZONE=PRC
Lumen タイム ゾーン設定の概要
.env ファイルを編集して構成を追加するAPP_TIMEZONE=PRC DB_TIMEZONE=+08:00.env 構成ファイルが有効になっていない場合は、
/vendor/laravel/lumen-framework/config/database.php /vendor/laravel/lumen-framework/src/Application.phpを編集して、APP_TIMEZONE パラメーター値と DB_TIMEZONE パラメーター値をそれぞれ変更します。
.env 設定ファイルを有効にする
Lumen ルート ディレクトリにある .env.example ファイルの名前を .env に変更し、/bootstrap/app.php を編集してキャンセルします。コード行のコメントDotenv::load(__DIR__.'/../');
.env に
DB_TIMEZONE= 08:00
以上がLumen タイムゾーン タイムゾーン設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。