时间戳,时区和夏令时

时间:2013-08-20 12:59:53

标签: php mysql datetime dst

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

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

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

我正试图绕过时区/日光节省等等,并努力略微理解这些概念!!

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

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

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

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

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

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

还要确保设置default timezone to UTC in php.ini