我的服务器的时区是东部时间。当我第一次构建我的成员表时,我继续并要求成员在注册时设置他们的时区,以便我以后可以添加时区支持。
例如,一个成员注册并选择东部时间作为其时区。数据库中的信息看起来像"-5"。
我存储的默认时间戳是Y-m-d H: I:s格式。现在,只使用偏移量进行转换有多难呢?我想提交一个时间戳(无论时区最好使用偏移量)到数据库时,一个帖子,然后只是将其转换为用户的时区基于他们在数据库中的偏移量,当内容显示给他们。
任何示例代码或简短的教程都会很棒。
谢谢。
假设您做了正确的事情,并且使用MySQL时间戳数据类型存储时间戳,而不是datetime日期类型,那么您所要做的就是将SET time_zone = ....
作为MySQL查询,时间戳将转换。
datetime数据类型不会自己转换,但您可以自己转换。
你会有一些问题与日光节约时间。最好将时区存储为America/New_York之类的。不是数字。
请参阅php timezone_identifiers_list()
函数,该函数将为您提供可能的时区列表。该结果可用于PHP和MySQL。我通常从用户配置文件加载时区,然后执行:
date_default_timezone_set('....');
mysql_query("SET time_zone = '....'");
很简单。Php有相当广泛的时区支持。
http://www.php.net/manual/en/class.datetime.php