【问题标题】:Manage time offset for different users?管理不同用户的时间偏移?
【发布时间】:2011-12-13 16:15:27
【问题描述】:

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

在我的网站注册时,我可以选择让用户选择他希望网站显示在哪个时区,我应该如何保存用户选择的时间偏移量?

  • A) 我应该使用时区的名称导致 我的 MySQL 表上的 VARCHAR 字段?
  • B) 我应该使用small int 4 字段并将其存储为-1200 ~ 1300 格式以便以后重复使用以进行转换?

或者考虑到它可以在查询中或在 PHP 本身上重用,什么是存储时间偏移量的最合适的方式?

【问题讨论】:

    标签: php mysql timezone


    【解决方案1】:

    您可能应该将时区名称存储为一个字符串,稍后您可以将其直接输入到DateTimeZoneconstructor。作为奖励,它也是人类可读的。

    【讨论】:

    • 这也可以让我使用 MySQL 中的 convert_tz dev.mysql.com/doc/refman/5.0/en/…
    • @Prix:我不会真正参与数据库中的时区。没有真正的需要,一切都可以在 PHP 中完成(可以说它更可见且更易于设计)。
    • 感谢您的回复,所以最好在PHP级别转换返回的时间然后让MySQL来做?
    • 这就是我会做的,因为这样你就不需要搞乱每个查询。
    • 我现在真正想到的唯一缺点是,如果我在 MySQL 级别转换它,并且只想要从今天开始的时间,我会得到它,而如果我在 PHP 级别转换它我仍然需要过滤日期,因为转换可能会选择一些超过今天日期的日期(由于时区差异),对吗?我错过了其他可能的缺点吗?
    猜你喜欢
    • 2023-01-26
    • 2017-07-17
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2018-03-27
    • 2018-09-22
    相关资源
    最近更新 更多