這次為大家帶來Lumen timezone 怎樣進行時區設置,Lumen timezone 進行時區設置的注意事項有哪些,下面就是實戰案例,一起來看一下。
根據Laravel 4.x 和5.0 的經驗, 只需要到config/app.php 中設定下'timezone' 參數為'PRC' 就好了, 找到Lumen 的config 目錄, 在/vendor/laravel /lumen-framework/config 路徑下, 但是config/app.php 的參數選項中沒有timezone 參數選項, 手動加上後也是無效的。
然後想到 Laravel 5 的 .env 檔案, 結果發現 Lumen 的 .env 檔案裡也沒有關於 timezone 設定的選項。
又回到config 目錄, 看看config/database.php 中的設定, 關於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, ],
在這裡有個資料庫的timezone 設定, 預設00:00 , 也就是UTC 時間, 改成08:00 問題解決。由於專案啟用了.env 設定檔, 所以最後是在.env 檔案裡加入了一行
DB_TIMEZONE= 08:00
#資料庫timezone 問題解決。
資料庫的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 參數為APP_TIMEZONE, 值為UTC, 在這裡將UTC 改為PRC, 或在.env 檔案裡面加入
APP_TIMEZONE=PRC
lumen php 的時區設定問題解決。
Lumen 時區設定總結
編輯.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 參數值。
啟用.env 設定檔
將Lumen 根目錄下的.env.example 檔案重新命名為.env, 編輯/bootstrap/app.php, 取消如下行程式碼的註解
Dotenv::load(DIR.'/../');
補充:
因為lumen預設使用葛林妮治時間,需要轉換成北京時間。
在.env中加入
APP_TIMEZONE=PRC DB_TIMEZONE=+08:00
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是Lumen timezone 怎麼進行時區設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!