我想知道处理时区的最佳方法是什么。
假设user1
给user2
写了一条消息
现在user1
处于UTC + 2
,user2
处于UTC -2
,假设服务器将时间设置为UTC +1
那么我将如何处理所有这些时区差异呢?
我正在编写jquery插件,它将更新时间多久以前发生的事情,我最好的猜测是将服务器设置为UTC 0
然后根据客户端时区计算时差,但是有没有办法获取客户端时区,或者也许我以错误的方式这样做?
从上到下使用纪元时间 (UTC+00) 并忽略时区。假设浏览器/操作系统时区正确。这意味着发送和接收的每条消息都有一个时间戳,其形式是自纪元以来的毫秒数,使用new Date().getTime()
生成。
我目前的时间是:
Thu Oct 18 2012 22:07:11 GMT+0200 (CEST)
或:
1350590831507
CEST 是 UTC+02。在目标计算机上解释的后一种形式(与 UTC-0200new Date(1350590831507)
)将是:
Thu Oct 18 2012 18:07:11 GMT-0200
但它仍然是相同的日期(时间点)!如果十秒后将此时间戳与new Date().getTime()
进行比较,则无论时区如何,您都将始终获得 10000 毫秒。