Lumen timezone 时区设置方法(慢了8个小时)


Posted in PHP onJanuary 20, 2018

根据 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 相关文章推荐
同时提取多条新闻中的文本一例
Oct 09 PHP
PHP新手上路(十一)
Oct 09 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
php实现SAE上使用storage上传与下载文件的方法
Jun 29 PHP
是 WordPress 让 PHP 更流行了 而不是框架
Feb 03 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
深入理解PHP之源码目录结构与功能说明
Jun 01 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
PHP Class SoapClient not found解决方法
Jan 20 #PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
Jan 20 #PHP
php实现的mongoDB单例模式操作类
Jan 20 #PHP
PHP实现合并两个排序链表的方法
Jan 19 #PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 #PHP
php通过header发送自定义数据方法
Jan 18 #PHP
PHP实现从上往下打印二叉树的方法
Jan 18 #PHP
You might like
MySQL授权问题总结
2007/05/06 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Python简明入门教程
2015/08/04 Python
Python 文件管理实例详解
2015/11/10 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
numpy返回array中元素的index方法
2018/06/27 Python
python 自动去除空行的实例
2018/07/24 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
《二泉映月》教学反思
2014/04/15 职场文书
初中优秀学生评语
2014/12/29 职场文书
社区植树节活动总结
2015/02/06 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
秋收起义观后感
2015/06/11 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
讲座新闻稿
2015/07/18 职场文书
周末问候语大全
2015/11/10 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS
python的html标准库
2022/04/29 Python