溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Lumen中怎么利用timezone設(shè)置時區(qū)

發(fā)布時間:2021-07-23 14:28:58 來源:億速云 閱讀:131 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)Lumen中怎么利用timezone設(shè)置時區(qū),小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

根據(jù) Laravel 4.x 和 5.0 的經(jīng)驗, 只需要到 config/app.php 中設(shè)置下 ‘timezone' 參數(shù)為 ‘PRC' 就好了, 找到 Lumen 的 config 目錄, 在 /vendor/laravel/lumen-framework/config 路徑下, 但是 config/app.php 的參數(shù)選項中沒有 timezone 參數(shù)選項, 手動加上后也是無效的。

然后想到 Laravel 5 的 .env 文件, 結(jié)果發(fā)現(xiàn) Lumen 的 .env 文件里也沒有關(guān)于 timezone 設(shè)置的選項。

又回到 config 目錄, 看看 config/database.php 中的設(shè)置, 關(guān)于 mysql 的默認配置如下:

'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,
],

在這里有個數(shù)據(jù)庫的 timezone 設(shè)置, 默認 +00:00, 也就是 UTC 時間, 改成 +08:00 問題解決。由于項目啟用了 .env 配置文件, 所以最終是在 .env 文件里添加了一行

DB_TIMEZONE=+08:00

數(shù)據(jù)庫 timezone 問題解決。

數(shù)據(jù)庫的 timezone 問題雖然解決了, 但是 app 的 timezone 問題還沒解決, 全局搜索 lumen 項目, 找用到 timezone 的地方, 在 /vendor/laravel/lumen-framework/src/Application.php 文件中找到了初始化 lumen timezone 部分的代碼

/**
* 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();
}

代碼中使用的 .env 參數(shù)為 APP_TIMEZONE, 值為 UTC, 在這里將 UTC 改為 PRC, 或者在 .env 文件里添加

APP_TIMEZONE=PRC

lumen php 的時區(qū)設(shè)置問題解決。

Lumen 時區(qū)設(shè)置總結(jié)

編輯 .env 文件添加配置

APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00

若沒啟用 .env 配置文件, 編輯

/vendor/laravel/lumen-framework/config/database.php
/vendor/laravel/lumen-framework/src/Application.php

分別修改 APP_TIMEZONE 和 DB_TIMEZONE 參數(shù)值。

啟用 .env 配置文件

將 Lumen 根目錄下的 .env.example 文件重命名為 .env, 編輯 /bootstrap/app.php, 取消如下行代碼的注釋
Dotenv::load(__DIR__.'/../');

補充:

因為lumen默認使用格林尼治時間,需要轉(zhuǎn)成北京時間。
在.env中加入

APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00

以上就是Lumen中怎么利用timezone設(shè)置時區(qū),小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI