我有一个相当大的中央 MySQL 数据库。到目前为止,我一直使用 unix 时间戳来存储日期/时间。
直到几个月前,这一切都运行良好,突然从数据库检索到的大量数据丢失了。我检查了数据库,一切都在那里,没有改变。
我创建的应用程序精确到秒,当夏令时开始时,我的应用程序延迟了 3599 秒(一小时 3600 秒)
我正在尝试了解时区/夏令时等,并努力理解这些概念!!
我的所有 PHP 文件都设置为欧洲/伦敦
时区。我的数据库中的所有日期、时间等都存储为 unix 时间戳(整数)。
我应该将所有时间戳转换为 datetime() 字段类型吗?或者有没有办法避免夏令时?如果我切换到 UTC,我需要调整任何时间戳吗?
非常感谢任何建议。
最佳答案
您可以保持数据库中的 UNIX 时间戳不变。
您的应用程序正在将检索到的时间更改为服务器时间(在您的情况下为欧洲/伦敦),如您所知,它实现了 DST。
将您的服务器设置为 UTC 并开始使用 DateTime类以避免将来出现这些问题。
另外请确保设置您的 default timezone to UTC in php.ini
关于php - 时间戳、时区和夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18335730/