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



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

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

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

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


https://laravel.com/api/5.1/Illuminate/Console/Scheduling/Event.html#method_timezone

$data->setTimezone(Auth::user()->timezone)

Charles,我很欣赏你的回答,但我最终意识到日期正确进入数据库,但是当我将它们与MySQL NOW()函数进行比较时,NOW()部分是我需要转换的。

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

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

第三个参数是可变的,但你明白了。另外,这感觉有点像黑客,但它现在有效。

相关内容

  • 没有找到相关文章

最新更新