Maison >développement back-end >tutoriel php >Méthode de réglage du fuseau horaire Lumen timezone
Lorsque j'ai essayé Lumen pour la première fois, j'ai rencontré un problème. L'heure trouvée dans la base de données était 8 heures plus lente que l'heure TIMESTAMP enregistrée dans la base de données. Il s'agit évidemment d'un problème de réglage du fuseau horaire. fuseau horaire avec vous. Méthode de réglage du fuseau horaire, j'espère que cela pourra aider tout le monde.
Sur la base de l'expérience de Laravel 4.x et 5.0, il vous suffit de définir le paramètre 'timezone' sur 'PRC' dans config/app.php. Recherchez le répertoire de configuration Lumen dans /vendor/laravel /. chemin lumen-framework/config, mais il n'y a pas d'option de paramètre de fuseau horaire dans les options de paramètre de config/app.php, et elle n'est pas valide même si elle est ajoutée manuellement.
Ensuite, j'ai pensé au fichier .env de Laravel 5 et j'ai découvert qu'il n'y avait aucune option pour les paramètres de fuseau horaire dans le fichier .env de Lumen.
Retournez dans le répertoire config et regardez les paramètres dans config/database.php La configuration par défaut pour mysql est la suivante :
'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, ],Ici, il existe un paramètre de fuseau horaire de base de données. La valeur par défaut est +00:00, qui est l'heure UTC. Le changer en +08:00 résout le problème. Depuis que le projet a activé le fichier de configuration .env, une ligne
DB_TIMEZONE=+08:00
/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(); }Le paramètre .env utilisé dans le code est APP_TIMEZONE, et la valeur est UTC. Changez UTC en PRC ici, ou ajoutez
APP_TIMEZONE=PRC
Le problème de réglage du fuseau horaire de lumen php est résolu.
Modifiez le fichier .env pour ajouter la configuration
APP_TIMEZONE=PRC DB_TIMEZONE=+08:00
/vendor/laravel/lumen-framework/config/database.php /vendor/laravel/lumen-framework/src/Application.phpActiver le fichier de configuration .env
Renommer le fichier .env.example dans le répertoire racine de Lumen en .env, modifier /bootstrap/app.php et annuler comme suit les commentaires sur la ligne de code
Dotenv::load(__DIR__.'/../');
Supplément :
Parce que lumen utilise l'heure de Greenwich par défaut, il doit être converti à l’heure de Pékin.
Ajoutez
APP_TIMEZONE=PRC à .env
Ensuite, l'heure sera correcte
Recommandations associées :
Une brève discussion sur l'injection de dépendances personnalisée du framework LumenParamètre du fuseau horaire système de la fonction de date et d'heure PHPLinux PHP MySQL Explication détaillée de la méthode de paramétrage du fuseau horaire_Tutoriel PHPCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!