为什么80%的码农都做不了架构师?>>>   

在数据库迁移文件中,定义了$table->timestamps();, 但是发现字段 created_at 和 updated_at 的时间比北京时间(lumen的.env定义了时区)多了8个小时。

经排查:

对于lumen项目,除了定义APP_TIMEZONE=Asia/Shanghai 还需定义DB_TIMEZONE=+08:00。

参考文章:

http://blog.gxxsite.com/lumen-php-timezone-db-diff-wrong-time-solution/

原文:

早前发现在命令行查看 mysql 数据时,timestamp 字段(比如created_at和updated_at)总是比现实多出 8 个小时。然而由于前端一直没有察觉有问题,所以就以为只是我数据库的 timezone 设置有问题而已。

直到我创建了一个连接于同一数据库的 Laravel 工程,才发现问题的存在,mysql 中所有 timestamp 字段的原始时间(UTC)都比现实多出8小时,而调整 mysql 时区,也只是改变显示而已,数据在 insert 时已经铸成大错。

反复研究了很多,Laravel 并没有把timezone放到.env里设置,看了一遍config/app.php和config/database.php文件,确保时区均设置正确,然后在 Laravel 项目里修改的时间,timestamp 是准确的,没有多出 8 小时。

OK,到这里,问题基本找到了,我在 Lumen 中找到vendor/laravel/lumen-framework/config/database.php配置文件,里面有'timezone'  => env('DB_TIMEZONE', '+00:00')这么一句。。。我知道了,Lumen 的 PHP 配置是+8的时区,而 DB 配置是 0 时区,所以保存时,Lumen会主动把时间加 8 小时再保存进数据库。

果然,我在.env文件中添加DB_TIMEZONE=+08:00,Lumen就再也不插入错误的时间了。

官方文档中提到了APP_TIMEZONE,然而并没有提及DB_TIMEZONE,这个坑真的有点大。。。

其他参考连接:

http://bbs.earnp.com/article/355
https://www.laravist.com/blog/post/lumen-set-custom-timezone

转载于:https://my.oschina.net/jrrx/blog/886796

Lumen 5.4 时区设置相关推荐

  1. linux下时区设置和时间同步

    一.时区设置: [root@master ~]# tzselect Please identify a location so that time zone rules can be set corr ...

  2. 关于Django的时区设置TIME_ZONE,USE_TZ的问题

    2019独角兽企业重金招聘Python工程师标准>>> 在Django的settings.py中,已经将时区设置成了: TIME_ZONE = 'Asia/Shanghai' USE ...

  3. MySQL 数据库时区设置方法,“The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents ...” 问题解决

    连接 mysql 数据库时提示如下异常,是时区问题导致的. An error occurred while establishing the connection:Long Message: The ...

  4. linux系统时区设置

    linux系统时区设置 - 系统时钟设置 格式:date 月/日时:分:年.秒 [root@localhost ~]# date 080319462010.55 二  8月  3 19:46:55 C ...

  5. PHP——获取当前日期时间错误解决方案(PHP当前时区设置)

    问题描述 通过date()函数获取时间后,你会发现小时时间不对,比现在的时间小8个小时,无论用H,还是用h都一样. 问题分析 PHP默认的时区是UTC(格林威治时间),应该将其时区设置为PRC(北京时 ...

  6. django22:复制网页与css/时区设置

    复制网页 1.复制文章 右击--检测--选中--复制--copy outerhtml (整体html) 2.复制点赞点踩 a.复制html b.css也要复制 如果是模板,在html head内 {% ...

  7. Linux 命令之 timedatectl -- 查看系统当前时区设置

    timedatectl命令用于查看当前时区设置. # 查看当前时区设置 $ timedatectl# 显示所有可用的时区 $ timedatectl list-timezones # 设置当前时区 $ ...

  8. springboot mysql时区设置_java/springboot/mysql时区问题解决方案

    解决步骤: 先理清楚逻辑 数据从mysql查出-->进入docker(没容器化跳过)-->进入相应的应用程序(比如java或者框架springboot之类的)-->程序处理完输出返回 ...

  9. Django 时间与时区设置问题

    Django 时间与时区设置问题 在Django的配置文件settings.py中,有两个配置参数是跟时间与时区有关的,分别是TIME_ZONE和USE_TZ 如果USE_TZ设置为True时,Dja ...

最新文章

  1. PHP脚本执行超时的解决办法
  2. 从零开始学ios开发(十一):Tab Bars和Pickers
  3. 原始样式增加标题_版式设计!10个技巧让你设计出好的标题
  4. 华为的研发给我们什么启示?
  5. VTK:图表之ColorVertexLabels
  6. 百老汇原版音乐剧《摇滚学校》2月开启中国巡演
  7. Linux和Windows下使用printf的差别
  8. struts2与struts1整合,java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
  9. 程序员经验分享:Android高级工程师系列学习路线介绍,面试必备
  10. 虚拟语气和推测(三)
  11. 指针 数组指针 指针数组 函数指针等说明。
  12. 谁动过你的电脑?小姐姐们要学会保护好自己电脑里的小秘密呀
  13. Topcoder SRM 144 DIV 1
  14. 轻量级神经网络——shuffleNet
  15. 飞凌OK6410开发板加装锂电池电源管理模块
  16. openwrt设置成无线ap模式
  17. 来soul,遇见你的奇妙缘分
  18. vue 创建一个 表格,横向纵向都可以增加(减少)行和列,并且内容内容可以输入,标题可以修改
  19. 在线网页如何免费excel转pdf
  20. 将多个sheet页拆分成多个单独的excel

热门文章

  1. SpringMVC中的设计模式
  2. Sql Server REPLACE函数的使用
  3. 做一个有趣的有意思的人
  4. nodejs 安装express
  5. C# 对垒 VB.NET C#不行了?
  6. SpringBoot中fastJson返回数据展示null字段(响应值为null时字段被过滤)
  7. 浅谈Hibernate批量操作
  8. 为什么python不需要编译_为什么我用Go写机器学习部署平台,而偏偏不用Python?...
  9. 树的常见概念,二叉树的性质
  10. 注册Nocos配置中心失败:Could not resolve placeholder ‘config.info‘ in value “${config.info}