时间戳、时区和日光节约


Timestamps, Timezones and Daylights Savings

我有一个相当大的中央MySQL数据库。到目前为止,我一直在使用unix时间戳来存储日期/时间。

这一切都很好,直到几个月前,突然从数据库中检索到的大量数据丢失了。我查了一下数据库,一切都在那里,没有改变。

我创建的应用程序精确到秒,当节省了一天的时间后,它通过我的应用程序关闭了3599秒(一小时3600秒)

我正在努力了解时区/日光节约等,并努力稍微理解这些概念!!

我所有的PHP文件都设置为Europe/London时区。数据库中的所有日期、时间等都存储为unix时间戳(整数)。

我应该将所有时间戳转换为datetime()字段类型吗?或者有没有办法避免一整天的节省?如果我切换到UTC,我是否需要调整任何时间戳?

如有任何建议,不胜感激。

您可以保持数据库中的unix时间戳不变。

您的应用程序正在将检索到的时间更改为服务器时间,在您的情况下为欧洲/伦敦,它实现了您所知道的DST。

将服务器设置为UTC并开始使用DateTime类,以避免将来出现这些问题。

此外,请确保在php.ini中将默认时区设置为UTC。