【问题标题】:Setting and displaying event time to the client at different time zones在不同时区向客户端设置和显示事件时间
【发布时间】:2012-10-18 20:03:45
【问题描述】:

我想知道处理时区的最佳方法是什么。

假设user1给user2写了一条消息

现在user1 在UTC + 2 和user2 在UTC -2 假设服务器在UTC +1 设置时间

那么我将如何处理所有这些时区差异?

我正在编写 jquery 插件,它将更新时间多久前发生的事情,我最好的猜测是将服务器设置为UTC 0,然后根据客户端时区计算时差,但有没有办法得到客户时区,或者我做错了?

【问题讨论】:

    标签: timezone utc


    【解决方案1】:

    从上到下使用纪元时间 (UTC+00) 并忽略时区。假设浏览器/操作系统时区是正确的。这意味着发送和接收的每条消息都有一个时间戳,形式为自纪元以来的毫秒数,使用 new Date().getTime() 生成。

    我现在的时间是:

    Thu Oct 18 2012 22:07:11 GMT+0200 (CEST)
    

    或:

    1350590831507
    

    CEST 是 UTC+02。在目标计算机上解释的后一种形式(new Date(1350590831507) 与 UTC-0200)将是:

    Thu Oct 18 2012 18:07:11 GMT-0200
    

    但它仍然是同一个日期(时间点)!如果 10 秒后将此时间戳与 new Date().getTime() 进行比较,您将总是得到 10000 毫秒,与时区无关。

    【讨论】:

      猜你喜欢
      • 2010-12-22
      • 2012-01-25
      • 2015-07-10
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 2018-11-04
      • 2019-09-30
      相关资源
      最近更新 更多