目前,在我们的 Laravel 应用程序中,我们将时区设置如下。
'timezone' => env('TIMEZONE', 'Europe/London'),
我们 MySQL 数据库中的所有DateTime
和timestamps
字段也存储在Europe/London
时区中。
我们的应用程序现在将切换到UTC
,但是如果我们在我们的应用程序中更改到,目前还有一个小时,我们所有现有的基础设施都会中断BST
。TIMEZONE
UTC
将中断的事情包括我们现有的使用时间字段的查询,因为它们将与数据库中的记录不同步一个小时。
下面是我们在系统查询中使用时间的示例
Task::where('expired', '=', false)->where('expires_at', '<', Carbon::now())->get();
使用上面的代码示例,任务将提前一个小时到期,因为UTC
晚了一个小时BST
。
由于更改为UTC
将是系统的根本变化,我希望我能得到以下问题的答案。
是否有任何资源概述了将系统从本地时区转换为 UTC 的方法?
UTC
我应该将所有内容都存储起来,Europe/London
然后在前端为用户转换,而不是转换为吗?
有什么方法可以轻松查询其中包含多个时区的数据库表?
感谢您的帮助,我知道这个问题很难,所以任何能指出我正确方向的东西都将不胜感激。
侃侃无极