Heim  >  Artikel  >  Backend-Entwicklung  >  Einstellungsmethode für die Zeitzone der Lumen-Zeitzone

Einstellungsmethode für die Zeitzone der Lumen-Zeitzone

jacklove
jackloveOriginal
2018-06-29 17:45:381713Durchsuche

Als ich heute das Lumen-Framework zum Schreiben verwendet habe, bin ich auch auf ein Problem gestoßen. Die aus der Datenbank ermittelte Zeit war offensichtlich 8 Stunden langsamer ist ein Problem mit der Zeitzoneneinstellung, ich dachte, es könnte innerhalb von 1 Minute gelöst werden, aber ich habe mich geirrt

Nach den Erfahrungen mit Laravel 4.x und 5.0 müssen Sie nur den Parameter „Zeitzone“ festlegen zu „PRC“ in config/app.php. Alles gut, suchen Sie das Konfigurationsverzeichnis von Lumen unter dem Pfad /vendor/laravel/lumen-framework/config, aber es gibt keine Zeitzonenparameteroption in den Parameteroptionen von config/app.php. und es ist ungültig, auch wenn es manuell hinzugefügt wird.

Dann habe ich über die .env-Datei von Laravel 5 nachgedacht und festgestellt, dass es in der .env-Datei von Lumen keine Option für Zeitzoneneinstellungen gibt.

Gehen Sie zurück zum Konfigurationsverzeichnis und sehen Sie sich die Einstellungen in config/database.php an. Die Standardkonfiguration für MySQL lautet wie folgt:

'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 Hier gibt es eine Datenbank-Zeitzoneneinstellung. Die Standardeinstellung ist +00:00, was der UTC-Zeit entspricht, um das Problem zu lösen. Da das Projekt die .env-Konfigurationsdatei aktivierte, wurde der .env-Datei schließlich eine Zeile

DB_TIMEZONE=+08:00

hinzugefügt, um das Datenbank-Zeitzonenproblem zu lösen.

Obwohl das Zeitzonenproblem der App gelöst wurde, habe ich das Lumen-Projekt global durchsucht und den Ort gefunden, an dem die Zeitzone verwendet wird Lumen-Zeitzonenteil in der /vendor/laravel/lumen-framework/src/Application.php-Datei

/**
* 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();
}

Der im Code verwendete .env-Parameter ist APP_TIMEZONE, und der Wert ist UTC hier in PRC ändern , oder fügen Sie

in die .env-Datei ein

APP_TIMEZONE=PRC

Das Problem mit der Zeitzoneneinstellung von Lumen PHP ist gelöst.

Zusammenfassung der Lumen-Zeitzoneneinstellungen

.env-Datei bearbeiten, um Konfiguration hinzuzufügen

APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00

Wenn die .env-Konfigurationsdatei nicht aktiviert ist, bearbeiten Sie

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

, um die Parameterwerte APP_TIMEZONE bzw. DB_TIMEZONE zu ändern.

.env-Konfigurationsdatei aktivieren

Benennen Sie die .env.example-Datei im Lumen-Stammverzeichnis in .env um, bearbeiten Sie /bootstrap/app.php und brechen Sie ab folgt auf Kommentare zur Codezeile
Dotenv::load(__DIR__.'/../');

Ergänzung:

Da Lumen standardmäßig die Greenwich-Zeit verwendet, muss dies der Fall sein auf Pekinger Zeit umgerechnet werden.
Fügen Sie

APP_TIMEZONE=PRC zu .env hinzu
DB_TIMEZONE=+08:00

Dann ist die Zeit korrekt

Verwandte Empfehlungen:

Erläuterung der einfachen Implementierungsmethode der PHP-Nginx-Echtzeitausgabe

Detaillierte Erläuterung der PHP-Kommentarsyntaxspezifikationen und Namensspezifikationen

PHP-Sprachkommentare, einzeilige Kommentare und mehrzeilige Kommentare zu Inhalten

Das obige ist der detaillierte Inhalt vonEinstellungsmethode für die Zeitzone der Lumen-Zeitzone. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn