php lumen timestamp,Lumen 5.4 时区设置

在数据库迁移文件中,定义了$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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用PHPLumen开发一个简单的API网关非常方便和快捷。以下是基本步骤: 第一步是安装和设置Lumen框架。可以通过Composer来安装Lumen,并设置好基本配置文件。 接下来,我们需要创建一个API网关的主要路由。可以使用Lumen的路由系统来定义API的路由,将后端服务与客户端请求连接起来。 在定义路由时,可以使用Lumen提供的中间件(如Auth中间件)对请求进行验证和处理。这些中间件可以用来确保请求的安全性和有效性。 接下来,我们需要编写处理API请求的控制器。在控制器中,我们可以从请求中获取必要的参数,并与后端服务进行通信。可以使用Lumen提供的HTTP客户端(如Guzzle)来与其他API进行通信。 在控制器中,可以对请求进行验证和过滤,以确保数据的完整性和安全性。之后,我们可以通过使用Guzzle发送请求到后端服务,并将响应返回给客户端。 最后,我们可以在Lumen中使用中间件来对响应进行处理和修改。可以使用中间件来添加特定的响应头,对响应进行缓存或者修改返回的数据格式等。 可以使用Lumen提供的内置服务器来启动网关,也可以使用其他Web服务器(如Nginx或Apache)来部署和运行API网关。 总结起来,使用PHPLumen开发一个简单的API网关可以通过安装和设置Lumen、定义路由、编写控制器、使用中间件等步骤来完成。这样可以实现对客户端请求的验证、处理和转发,连接后端服务并返回响应给客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值