Php 管理不同用户的时间偏移?

Php 管理不同用户的时间偏移?,php,mysql,timezone,Php,Mysql,Timezone,我在这里搜索了一下,找到了很多在MySQL中转换时间的方法,但还没有找到管理用户时间偏移的最佳方法 在我的网站注册时,我有一个选项允许用户选择他希望网站显示的时区,我应该如何保存用户选择的时间偏移 A) 我应该使用时区的名称来产生一个错误吗 VARCHAR我的MySQL表上的字段 B) 我应该使用small int 4字段并将其存储为-1200~1300吗 格式,以便以后重新使用以进行转换 或者,考虑到可以在查询中或PHP本身上重用时间偏移量,以一种对我以后有益的方式存储时间偏移量,最合适的

我在这里搜索了一下,找到了很多在MySQL中转换时间的方法,但还没有找到管理用户时间偏移的最佳方法

在我的网站注册时,我有一个选项允许用户选择他希望网站显示的时区,我应该如何保存用户选择的时间偏移

  • A) 我应该使用时区的名称来产生一个错误吗
    VARCHAR
    我的MySQL表上的字段
  • B) 我应该使用
    small int 4
    字段并将其存储为-1200~1300吗 格式,以便以后重新使用以进行转换

或者,考虑到可以在查询中或PHP本身上重用时间偏移量,以一种对我以后有益的方式存储时间偏移量,最合适的方法是什么?

您可能应该将时区名称存储为字符串,以后可以直接输入
DateTimeZone
。这也是一种人类可读性的奖励。

这也让我可以使用MySQL中的convert_tz,对吗?@Prix:我不会真正涉及数据库中的时区。没有必要这样做,所有的事情都可以在PHP中完成(可以说PHP更直观,更易于工程设计)。感谢您的回复,所以最好转换PHP级别返回的时间,然后让MySQL来完成?这就是我要做的,因为这样,你不需要处理每一个查询。我现在唯一能想到的缺点是,如果我在MySQL级别转换它,并且只需要从今天开始的时间,我就可以得到它,如果在PHP级别进行转换,我仍然需要过滤日期,因为转换可能会选择一些日期,这些日期会超过今天的日期(由于时区差异),对吗?有没有其他可能让我错过的不利方面?