调整本地时区的最佳方法是什么?

时间:2010-11-14 03:27:24

标签: php datetime odbc

Maye我错误地使用now()来存储数据时获取时间戳?

当我向用户显示日期/时间时,他当然希望看到当地时间,如果他输入时间相关数据,而不是我使用now(),那么他将输入本地日期/时间。

为什么代码会变得混乱 - 处理时间戳的最佳做法是什么? UTC / locla时间?怎么&什么时候调整?

2 个答案:

答案 0 :(得分:2)

只需将所有日期存储在timestamp mysql列类型中,该类型可以处理所有时区问题,而mysql将为您完成所有工作。

因此,在应用程序启动开始时,您只需要指定日期所属的时区所需的时间:

SET time_zone='Asia/Vladivostok'

例如。

此外,在这种情况下,你不应该从php获取任何时间戳,如果你需要插入当前时间 - 你必须使用mysql的NOW()

就是这样。

答案 1 :(得分:1)

将所有日期存储在一个时区中,以便它们保持一致。 UTC / GMT + 0对此有好处。

然后使用CONVERT_TZ将输入转换为UTC / GMT + 0或从UTC / GMT + 0转换为用户的时区。

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

既然你所问的都是SQL函数,你应该用你正在使用的RDBMS(MySQL?)而不是PHP标记问题。