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 相关文章推荐
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
php 设计模式之 工厂模式
Dec 19 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
关于PHPDocument 代码注释规范的总结
Jun 25 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
ThinkPHP路由详解
Jul 27 PHP
php获取图片信息的方法详解
Dec 10 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
php自动加载代码实例详解
Feb 26 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
基于initPHP的框架介绍
2013/04/18 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
python读取浮点数和读取文本文件示例
2014/05/06 Python
python多线程操作实例
2014/11/21 Python
Python中实现对list做减法操作介绍
2015/01/09 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
英语翻译系毕业生求职信
2013/09/29 职场文书
七匹狼男装广告词
2014/03/21 职场文书
生物科学专业自荐书
2014/06/20 职场文书
股权转让协议范本
2014/12/07 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js