我想知道处理时区的最佳方法是什么。
我们说user1
已向user2
现在user1
位于UTC + 2
且user2
位于UTC -2
,假设服务器在UTC +1
中设置时间
那么我如何处理时区的所有这些差异?
我正在编写jquery插件,它会在多久以前发生事情时更新时间,我最好的猜测是将服务器设置为UTC 0
,然后根据客户端时区计算时差,但有没有办法获取客户时区,或者我是以错误的方式进行操作?
答案 0 :(得分:2)
从上到下使用纪元时间(UTC + 00)并忽略时区。假设浏览器/ OS时区正确。这意味着发送和接收的每条消息都有一个时间戳,其形式为自纪元以来的毫秒数,使用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
但它仍然是相同的日期(时间点)!如果十秒后您将此时间戳与new Date().getTime()
进行比较,则无论时区如何,总是获得10000毫秒。