我服务器的时区是东部时间。当我第一次构建我的成员表时,我继续要求成员在注册时设置他们的时区,以便我以后可以添加时区支持。
例如,成员(member)注册并选择东部时间作为他们的时区。数据库中的信息看起来像“-5”。
我存储的默认时间戳是 Y-m-d H:i:s 格式。现在仅使用偏移量进行转换会有多困难?我想在发布帖子时将一个时间戳(最好与偏移量一起使用的任何时区)提交到数据库中,然后在向用户显示内容时根据他们在数据库中的偏移量将其转换为用户的时区。
任何示例代码或简短教程都会很棒。
谢谢。
最佳答案
假设您做对了并且使用 MySQL 时间戳数据类型而不是 datetime 日期类型存储时间戳,您所要做的就是 SET time_zone = ....
作为 MySQL 查询, 时间戳将转换。
日期时间数据类型不会自行转换,但您可以自行转换。
不过你会遇到一些夏令时的问题。最好将时区存储为 America/New_York 等。不是数字。
请参阅 php timezone_identifiers_list()
函数,它会为您提供可能的时区列表。其结果可用于 PHP 和 MySQL。我通常从用户配置文件中加载时区,然后执行以下操作:
date_default_timezone_set('....');
mysql_query("SET time_zone = '....'");
然后一切正常。
关于php - 使用存储在数据库中的偏移量转换为成员时区的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465844/