Heim > Artikel > Backend-Entwicklung > Einstellungsmethode für die Zeitzone der Lumen-Zeitzone
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=PRC
Das Problem mit der Zeitzoneneinstellung von Lumen PHP ist gelöst.
.env-Datei bearbeiten, um Konfiguration hinzuzufügen
APP_TIMEZONE=PRC DB_TIMEZONE=+08:00
/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
Dann ist die Zeit korrekt
Verwandte Empfehlungen:
Eine kurze Diskussion über die benutzerdefinierte Abhängigkeitsinjektion des Lumen-FrameworksSystemzeitzoneneinstellung der PHP-Datums- und UhrzeitfunktionLinux PHP MySQL Detaillierte Erklärung der Zeitzoneneinstellungsmethode_PHP-TutorialDas 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!