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 相关文章推荐
生成静态页面的PHP类
Nov 25 PHP
分享PHP入门的学习方法
Jan 02 PHP
php 正则 过滤html 的超链接
Jun 02 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
php中常用的预定义变量小结
May 09 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 PHP
Laravel框架集合用法实例浅析
May 14 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
通过对服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP生成器简单实例
2015/05/13 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
Python中str is not callable问题详解及解决办法
2017/02/10 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Python3 log10()函数简单用法
2019/02/19 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
python中entry用法讲解
2020/12/04 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
艺术设计专业求职自荐信
2014/05/19 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
无工作证明怎么写
2015/06/15 职场文书
2016新年致辞
2015/08/01 职场文书