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

Einstellungsmethode für die Zeitzone der Lumen-Zeitzone

小云云
小云云Original
2018-01-24 11:22:112021Durchsuche

Als ich Lumen zum ersten Mal ausprobierte, war die aus der Datenbank ermittelte Zeit um 8 Stunden langsamer als die in der Datenbank gespeicherte TIMESTAMP-Zeit Mit der Zeitzonen-Einstellungsmethode von Lumen hoffe ich, dass sie allen helfen kann.

Basierend auf den Erfahrungen mit Laravel 4.x und 5.0 müssen Sie lediglich den Parameter „timezone“ in config/app.php auf „PRC“ setzen und das Lumen-Konfigurationsverzeichnis in /vendor/laravel finden /lumen-framework/config-Pfad, aber es gibt keine Zeitzonenparameteroption in den Parameteroptionen von config/app.php und sie ist ungültig, selbst wenn sie 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,
],

Hier gibt es eine Datenbank-Zeitzoneneinstellung. Die Standardeinstellung ist +00:00, was der UTC-Zeit entspricht. Durch Ändern auf +08:00 wird das Problem behoben. 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

APP_TIMEZONE=PRCDas Problem mit der Zeitzoneneinstellung von Lumen PHP ist gelöst.

Zusammenfassung der Lumen-Zeitzoneneinstellungen

.env-Datei bearbeiten, um Konfiguration hinzuzufügen


Wenn Es ist nicht aktiviert. Bearbeiten Sie
APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00


, um die Parameterwerte APP_TIMEZONE und DB_TIMEZONE zu ändern.
/vendor/laravel/lumen-framework/config/database.php
/vendor/laravel/lumen-framework/src/Application.php

.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:

Eine kurze Diskussion über die benutzerdefinierte Abhängigkeitsinjektion des Lumen-Frameworks

Systemzeitzoneneinstellung der PHP-Datums- und Uhrzeitfunktion

Linux PHP MySQL Detaillierte Erklärung der Zeitzoneneinstellungsmethode_PHP-Tutorial

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