Home  >  Article  >  Backend Development  >  Lumen timezone How to set time zone

Lumen timezone How to set time zone

php中世界最好的语言
php中世界最好的语言Original
2018-05-19 14:34:131632browse

This time I will show you how to set the time zone in Lumen timezone, and what are the precautions for setting the time zone in Lumen timezone. The following is a practical case, let's take a look.

According to the experience of Laravel 4.x and 5.0, you only need to set the 'timezone' parameter to 'PRC' in config/app.php, find the Lumen config directory, in /vendor/laravel /lumen-framework/config path, but there is no timezone parameter option in the parameter options of config/app.php, and it is invalid even if it is added manually.

Then I thought about the .env file of Laravel 5, and found that there is no option for timezone setting in Lumen’s .env file.

Go back to the config directory and look at the settings in config/database.php. The default configuration for mysql is as follows:

'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,
],
There is a timezone setting for the database here, the default is 00:00 , that is, UTC time, changed to 08:00 to solve the problem. Since the project enabled the .env

configuration file, a line of

DB_TIMEZONE= 08:00

was added to the .env file. timezone problem solved.

Although the timezone problem of the database has been solved, the timezone problem of the app has not been solved. Search the lumen project globally to find the place where timezone is used. It is in

/vendor/laravel/lumen-framework/src/ The code for initializing the lumen timezone part was found in the Application.php file

/**
* 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();
}
The .env parameter used in the code is APP_TIMEZONE, and the value is UTC. Change UTC to PRC here, or in the .env file Add

APP_TIMEZONE=PRC

lumen php's time zone setting problem to solve.

Summary of Lumen time zone settings

Edit the .env file to add configuration

APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00
If the .env configuration file is not enabled, edit

/vendor/laravel/lumen-framework/config/database.php
/vendor/laravel/lumen-framework/src/Application.php
Modify the APP_TIMEZONE and DB_TIMEZONE parameter values ​​respectively.

Enable .env configuration file

Rename the .env.example file in the Lumen root directory to .env, edit /bootstrap/app.php, and cancel as follows

Comments on the line of code

Dotenv::load(DIR.'/../');

Addition:

Because lumen uses Greenwich time by default, it needs to be converted to Beijing time.

Add

APP_TIMEZONE=PRC 
DB_TIMEZONE=+08:00

to .env. I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

Detailed explanation of the algorithm steps to implement statistical counting of the number of 1's in binary numbers

PHP development of WeChat remote control Detailed explanation of server steps

The above is the detailed content of Lumen timezone How to set time zone. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn