ホームページ >バックエンド開発 >PHPチュートリアル >Lumen タイムゾーン タイムゾーン設定方法

Lumen タイムゾーン タイムゾーン設定方法

小云云
小云云オリジナル
2018-01-24 11:22:112063ブラウズ

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:00DB_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

データベースのタイムゾーンの問題は解決されました。

データベースのタイムゾーンの問題は解決しましたが、アプリのタイムゾーンの問題は解決されていません。lumen プロジェクトをグローバルに検索し、/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 php のタイムゾーン設定の問題は解決されました。

Lumen タイムゾーン設定の概要

.env ファイルを編集して構成を追加します

/vendor/laravel/lumen-framework/config/database.php
/vendor/laravel/lumen-framework/src/Application.php

.env 構成ファイルが有効になっていない場合は、


rrreee

を編集して APP_TIMEZONE および DB_TIMEZONE パラメータを変更しますそれぞれの値。


.env設定ファイルを有効にする


Lumenルートディレクトリにある.env.exampleファイルの名前を.envに変更し、/bootstrap/app.phpを編集して、次のコード行のコメントを解除します

Dotenv::load(__DIR__. '/../');

追記:

ルーメンはデフォルトでグリニッジ時間を使用するため、北京時間に変換する必要があります。

APP_TIMEZONE=PRC を .env に追加します

DB_TIMEZONE=+08:00これにより、時間が正確になります

関連する推奨事項:

Lumen Framework のカスタム依存関係の注入についての簡単な説明🎜🎜🎜🎜PHP の日付and time関数システムのタイムゾーン設定🎜🎜🎜🎜Linux PHP MySQLのタイムゾーン設定方法詳細解説_PHPチュートリアル🎜🎜

以上がLumen タイムゾーン タイムゾーン設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。