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 set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
PHP 设置MySQL连接字符集的方法
Jan 02 PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 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中替换换行符的几种方法小结
2012/10/15 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
JS仿淘宝实现的简单滑动门效果代码
2015/10/14 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
Python中用于返回绝对值的abs()方法
2015/05/14 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python中Numpy mat的使用详解
2019/05/24 Python
python psutil模块使用方法解析
2019/08/01 Python
Python实现不规则图形填充的思路
2020/02/02 Python
python关于变量名的基础知识点
2020/03/03 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
python绘图模块之利用turtle画图
2021/02/12 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
初婚初育证明范本
2015/06/18 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python
Hive导入csv文件示例
2022/06/25 数据库