MySQL中的时区设置 - 使用NOW()?

时间:2011-06-23 23:54:11

标签: php mysql timezone

Doing calculations in MySQL vs PHP

有多大关系

现在,我们的数据库假设系统时间是UTC并使用它来计算NOW()。 PHP明确地将时区设置为UTC(因此它不受服务器时区转换的影响)。

服务器上时区的意外转移在数据库级别搞砸了这种关系,我现在正试图找出理想的配置:

  1. 将Mysql配置为UTC,但也从以下角度配置:

  2. 我们的应用程序可能在其他人的服务器上,他们可能有不同的TZ(因此我无法在mysql / server级别设置时区)。如何在特定数据库级别配置它?

2 个答案:

答案 0 :(得分:3)

你应该看看UTC_TIMESTAMP();这可确保数据库中的时间戳字段始终为UTC。让PHP脚本从用户浏览器信息中进行偏移。这也可以使用DATE_ADD / DATE_SUB或更好CONVERT_TZ()来完成。

答案 1 :(得分:1)

让PHP在将其存储在数据库中之前设置它。将其设置为GMT,然后根据需要根据用户时区进行计算。