Lumen 设置 timezone 时区
Lumen 设置 timezone 时区
今天用 Lumen 框架写代码时, 也是初次体验 Lumen, 遇到了一个问题, 从数据库里查出的时间比数据库里保存的 TIMESTAMP 时间慢了8个小时, 很明显这是一个时区设置的问题, 本以为可以在1分钟内解决的, 但是我错了。
根据 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 部分的代码
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/** * 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 设置 timezone 时区的更多相关文章
- django时区设置(timezone)
django时区设置(timezone): 默认: TIMEZONE:'America/Chicago'(以前的版本,现在的版本默认的都是UTC时间.) Chicago时间,为UTC/GMT -6 小 ...
- Rails-Treasure chest1 (自定义Model网址;多语言包; 时区设置, TimeZone类; 格式日期时间; 表单单选UI; 表单多选UI;Select2 Plugin)
自定义Model网址: 随机值网址SecureRandom.base58 多语言包, 包括默认语言设置和user自设置. 时区设置, TimeZone类 ,增加user自选时区功能 格式日期时间: x ...
- docker容器里设置中文时区
本文讨论docker容器里中文时区的问题,总所周知docker hub上的镜像默认都是英文时区的,在国人使用过程当中需要将时区设置成中文,我原来光配置/etc/localtime了date显示的时间也 ...
- Python 调用datetime或者time获取时间的时候以及时间转换,最好设置一下时区 否则会出现相差8个小时的情况
在使用调用datetime或者time获取时间的时候以及时间转换,最好设置一下时区, 因为不同机器设置的时区不同,获取的时间可能就不对,正好我们使用的这两个服务器使用的都是东八区,所以没有问题,设置方 ...
- MTK Android中设置默认时区
设置默认时区 PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.timezone=Asia/Shanghai\ 注:搜索“persist.sys.timezone ...
- Spring Boot程序插入时间和MySQL数据库显示时间不一样(设置数据库时区)
首先查看数据库时区 show variables like "%time_zone%"; # 设置全局时区 mysql> set global time_zone = '+8 ...
- Gmail 设置,时区
问题提出: 我们工作的时候,需要和不同时区的人进行合作.我们需要注意时区问题.如果没有设置好时区,会造成很多不便. 了解时区问题: 通过 这个网站可以,让你对时区有所了解:http://zh.thet ...
- Win10设置多时区时钟方法技巧
Win10设置多时区时钟方法技巧,本文小编将向大家介绍如何设置多个时区时钟,以及如何使用「闹钟和时钟」应用跟踪更多时区,感兴趣的朋友可以参考下面教程操作. Win10系统允许用户配置最多3个不同的时钟 ...
- Mysql -- 设置中国时区时间
Mysql -- 设置中国时区时间 查看mysql的时区设置 mysql> show variables like '%time_zone%'; 修改mysql的时区设置, 注:mysql ...
随机推荐
- javascript(脚本语言)
javascript(脚本语言)一.注释语法:1.单行注释 //注释内容2.多行注释 /*注释内容*/二.输出语法js语言格式,尽量靠下写,属双标签<script type=”text/java ...
- 三 GPU 并行编程的运算架构
前言 GPU 是如何实现并行的?它实现的方式较之 CPU 的多线程又有什么分别?本文将做一个较为细致的分析. GPU 并行计算架构 GPU 并行编程的核心在于线程,一个线程就是程序中的一个单一指令流, ...
- URI与URL区别
URL 与 URI 很多人会混淆这两个名词. URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符). URI:(Uniform Resource I ...
- 关于typedef的用法总结(转)
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中.typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些 ...
- [翻译]深度学习的机器(The learning machines)
学习的机器 用大量的数据识别图像和语音,深度学习的计算机(deep-learning computers) 向真正意义上的人工智能迈出了一大步. Nicola Jones Computer Scien ...
- IDOC、ALE、EDI三者之间的区别于联系
EDI (Electronic data interchange) - 是指按照同一规定的一套通用标准格式,将标准的经济信息,通过通信网络传输,在贸易伙伴的电子计算机系统之间进行数据交换和自动处理.由 ...
- 运动历史图(MHI)——Motion History Image
MHI最初是由Bobick 和 Davis提出的,在此之前,Bobick 和 Davis 首先提出了二值的运动能量图(Motion Energy Image,MEI),通过描述物体如何移动和运动在空间 ...
- 时空上下文视觉跟踪(STC)算法的解读与代码复现(转)
时空上下文视觉跟踪(STC)算法的解读与代码复现 zouxy09@qq.com http://blog.csdn.net/zouxy09 本博文主要是关注一篇视觉跟踪的论文.这篇论文是Kaihua Z ...
- C语言学习笔记 -冒泡排序
//冒泡排序 void main(){ , , , , }; ]); ; i<max - ; i++) { for (int j = i; j<max; j++) { if (a[i]&g ...
- 《C标准库》——之<ctype.h>
在没读<ctype.h>的源码之前,我一直以为我们平时用的isalnum.isdigit.isalpha等这些函数,是靠判断写出来的. 比如: int isdigit(int c){ re ...