ホームページ  >  記事  >  バックエンド開発  >  Lumen タイムゾーン タイムゾーン設定方法

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

jacklove
jackloveオリジナル
2018-06-29 17:45:381770ブラウズ

今日、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

という行が .env ファイルに追加され、データベースのタイムゾーンの問題は解決されました。 。

データベースのタイムゾーン問題は解決しましたが、アプリのタイムゾーン問題はまだ解決していません。lumen プロジェクトをグローバルに検索して、タイムゾーンが使用されている場所を見つけます。

/ にあります。 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 php のタイムゾーン設定を追加します。 .env ファイルに問題があります。

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 に

APP_TIMEZONE=PRC を追加します。

DB_TIMEZONE= 08:00

これにより、時間が正確になります

関連する推奨事項:

nginx リアルタイム出力の簡単な実装方法の説明

PHP コメント構文仕様と命名仕様の詳細説明

#php 言語コメント、単一行コメント、および複数行コメント関連コンテンツ


##

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

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