1 回答

TA贡献2051条经验 获得超10个赞
不能说你列表中的第一项,这是我对第二项的看法。实际上有很多时区你应该知道:默认的 php 时区(来自 php.ini 的那个),服务器时区(afaik,如果 php.ini 时区是空的,它会回落到服务器的那个),mysql 的时区,部署mysql实例的服务器时区,你当前所在的时区,你用户的时区,更不用说像mysql连接时区这样通俗的东西了。
话虽如此,如果您不想在调试花哨的错误时度过一段愉快的时光,那么您希望所有系统时区都相同。实际上,它到底是什么并不重要。更重要的是,您了解它们中的每一个,并且知道它们如何适用于您的情况。将所有系统时区设置为 UTC 只是更可预测、更通用、更常见。
但如果我是你,我会保留基础设施时区设置不变。我怀疑你从这一举措中获得了什么有形的东西。在前端转换日期时间实际上是处理此类问题的常用方法。例如,在 postgres 中,可以将时区与日期时间一起保存,但它几乎没有用,因为它已转换为系统时区。所以当我需要向客户端输出日期时间时,我会写类似
(new AdjustedAccordingToTimeZone(
new FromISO8601('2018-04-25 15:08:01+00:00'),
new Moscow()
))
->value();
关于你的第三个问题,如果您查询多行,每一行都有自己的时区,您可以随时将这些日期转换为您希望的任何时区。
- 1 回答
- 0 关注
- 226 浏览
添加回答
举报