0

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

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

我创建的应用程序精确到秒,当夏令时接管时,它通过我的应用程序关闭了 3599 秒(一小时 3600 秒)

我正在努力了解时区/夏令时等,并努力理解这些概念!

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

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

任何意见是极大的赞赏。

4

1 回答 1

1

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

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

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

还要确保在 php.ini 中将默认时区设置为 UTC

于 2013-08-20T13:09:58.277 回答