如何计算大型应用程序的时区偏移量



在处理大型应用程序时,我试图使日期时间戳与当前用户时间一致。如果activity id在下午3点完成那么每个用户都会在下午3点看到它

所以这是解决问题的步骤。如果我不在正确的方向上,请纠正我或引导我到正确的方向。

  1. 用当前偏移量在表中存储时区。例如

    zone_id  zone_name  utc-offset
    1        Central    -6
    
  2. 在我的用户表中,我有一个字段为user_time_zone_id,在该字段中,我将在用户设置中设置值"1",因此它将表示该用户正在使用来自"Central"位置的系统。

  3. 在我的php应用程序配置中,我将默认时区设置为UTC,如下所示

    date_default_timezone_set('UTC');
    
  4. 加载此应用程序后,我定义用户偏移量,并在每次datetime输出时计算时间。例如date('Y-m-d', strtotime($current_offset.' hour')) where $current_offset = -6,因为它是在页面加载时由用户配置文件定义的。

这是我的问题。

我解决这个问题的方法正确吗?有更好的方法吗?如何计算夏令时?请注意,我国部分地区没有夏令时。

我曾经有过类似的事情,并且它最终成为一种痛苦,试图跟踪用户的时区和夏令时,特别是当你的一半客户在没有夏令时的AZ。我不知道这对你来说是否可能,但我最终做的只是将所有内容存储在UTC中,然后使用JS将其转换为使用Date对象的用户本地时间。这是通过ajax调用完成的,但如果需要,也可以使用echodocument.write

你不需要使用date_default_timezone_set,使用PHP的DateTime类,它具有本地时区支持。或者,就像@romo说的,你也可以在客户端用JavaScript完成。

相关内容

  • 没有找到相关文章

最新更新