Lumen timezone 時(shí)區(qū)設(shè)置方法(慢了8個(gè)小時(shí))
根據(jù) Laravel 4.x 和 5.0 的經(jīng)驗(yàn), 只需要到 config/app.php 中設(shè)置下 ‘timezone' 參數(shù)為 ‘PRC' 就好了, 找到 Lumen 的 config 目錄, 在 /vendor/laravel/lumen-framework/config 路徑下, 但是 config/app.php 的參數(shù)選項(xiàng)中沒(méi)有 timezone 參數(shù)選項(xiàng), 手動(dòng)加上后也是無(wú)效的。
然后想到 Laravel 5 的 .env 文件, 結(jié)果發(fā)現(xiàn) Lumen 的 .env 文件里也沒(méi)有關(guān)于 timezone 設(shè)置的選項(xiàng)。
又回到 config 目錄, 看看 config/database.php 中的設(shè)置, 關(guān)于 mysql 的默認(rèn)配置如下:
'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, ],
在這里有個(gè)數(shù)據(jù)庫(kù)的 timezone 設(shè)置, 默認(rèn) +00:00, 也就是 UTC 時(shí)間, 改成 +08:00 問(wèn)題解決。由于項(xiàng)目啟用了 .env 配置文件, 所以最終是在 .env 文件里添加了一行
DB_TIMEZONE=+08:00
數(shù)據(jù)庫(kù) timezone 問(wèn)題解決。
數(shù)據(jù)庫(kù)的 timezone 問(wèn)題雖然解決了, 但是 app 的 timezone 問(wèn)題還沒(méi)解決, 全局搜索 lumen 項(xiàng)目, 找用到 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 的時(shí)區(qū)設(shè)置問(wèn)題解決。
Lumen 時(shí)區(qū)設(shè)置總結(jié)
編輯 .env 文件添加配置
APP_TIMEZONE=PRC DB_TIMEZONE=+08:00
若沒(méi)啟用 .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__.'/../');
補(bǔ)充:
因?yàn)閘umen默認(rèn)使用格林尼治時(shí)間,需要轉(zhuǎn)成北京時(shí)間。
在.env中加入
APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00
這樣時(shí)間就正確了
相關(guān)文章
php利用ffmpeg提取視頻中音頻與視頻畫(huà)面的方法詳解
想要提取視頻中的音頻信息,首選的技術(shù)是ffmpeg,ffmpeg是一個(gè)非常有用的命令行程序,它可以用來(lái)轉(zhuǎn)碼媒體文件。這篇文章主要給大家介紹了PHP利用ffmpeg提取視頻中音頻與視頻畫(huà)面的相關(guān)資料,需要的朋友可以參考下。2017-06-06php獲取mysql數(shù)據(jù)庫(kù)中的所有表名的代碼
如何用PHP獲取MYSQL數(shù)據(jù)庫(kù)的所有表名?記得在mysql命令行下面有條命令SHOW TABLES是顯示mysql數(shù)據(jù)庫(kù)里面所有數(shù)據(jù)表的,那么就用這條命令來(lái)遍歷數(shù)據(jù)表名吧2011-04-04php設(shè)計(jì)模式 Command(命令模式)
將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化,對(duì)請(qǐng)求排除或記錄請(qǐng)求日志,以及支持可取消的操作2011-06-06PHP 簡(jiǎn)單數(shù)組排序?qū)崿F(xiàn)代碼
PHP知道如何比較兩個(gè)數(shù)字或字符串,但多維數(shù)組的每個(gè)元素都是數(shù)組。PHP不知道如何去比較兩個(gè)數(shù)組,所以需要建立一個(gè)比較它們的方法。2009-08-08libmysql.dll與php.ini是否真的要拷貝到c:\windows目錄下呢
很多安裝PHP的教程,都是教大家把php里的libmysql.dll拷貝到c:\windows目錄下(有的教程會(huì)說(shuō)還要把php.ini等文件拷到系統(tǒng)目錄的,其實(shí)一個(gè)文件都不用拷貝去的。)。2010-03-03PHP設(shè)計(jì)模式之策略模式原理與用法實(shí)例分析
這篇文章主要介紹了PHP設(shè)計(jì)模式之策略模式原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了策略模式的概念、原理及php實(shí)現(xiàn)與使用策略模式的相關(guān)操作技巧,需要的朋友可以參考下2019-04-04PHP實(shí)現(xiàn)簡(jiǎn)單ajax Loading加載功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)簡(jiǎn)單ajax Loading加載功能的方法,結(jié)合實(shí)例形式分析了ajax加載的原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-12-12