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 einAPP_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!