如何为Laravel项目更改MySQL DB UTC时间?

时间:2019-04-12 21:07:23

标签: mysql laravel timezone utc timezone-offset

我有一个Laravel项目,其中的MySQL DB设置为UTC时区。我希望能够根据客户端访问数据的位置将数据库中的UTC时区时间更改为各种时区。

我可以根据客户端在timezone中动态设置config/app.php参数,但是当我使用save方法时,这似乎并不影响进入数据库的时间。使用Laravel方法(基本上所有内容都可以追溯到UTC)。

可能有很多方法可以实现这一点,但是经过大量的搜索之后,我找不到一种方法来获取UTC中的DB时间来切换到我选择的时区。

值得注意的是,我的项目有时使用Laravel模型进行查询,有时使用DB类中的查询生成器。我不确定是否需要以不同的方式处理它们,但是都一样,我正在寻找一种可以处理两个用例的解决方案。谢谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

查尔斯,我很感谢您的回答,但是我最终意识到日期正确地进入了数据库,但是当我将它们与MySQL NOW()函数进行比较时,NOW()部分就是我需要转换。

这样,我最终使用如下的CONVERT_TZ函数来获得我想要的东西:

CONVERT_TZ(NOW(), 'UTC', 'US/Eastern')

第三个参数被设置为变量,但是您明白了。另外,这感觉有点像骇客,但目前仍然有效。