通过使用http请求如何获取不是UTC格式的服务器时区

时间:2017-02-17 11:21:48

标签: http header timezone response

我的服务器的机器时区是HST格式。当我尝试在javascript中使用http请求获取时区时。它以UTC格式给我。有没有办法获得服务器的时区。

1 个答案:

答案 0 :(得分:6)

一些事情:

  • 永远不要依赖服务器的时区来设置任何特定的时区。它可以很容易地更改,或者您可能只是想将服务器移动到其他位置。这两种情况都不应该影响您的数据。
  • HTTP标头只会为您提供UTC / GMT时间。这部分HTTP规范,在RFC7231 section 7.1.1.1 and 7.1.1.2
  • 客户端对服务器的时区一无所知,除非您特意自行发送。由于前两点,无论如何都不应该要求,或者应该在极少数情况下使用。
  • 服务器也不知道客户端时区。如果要在客户端的本地时间显示服务器时钟的值,您有两种选择:

    1. 将UTC时间发送到客户端,并使用JavaScript将UTC转换为本地时间。 JavaScript Date对象就足够了,但您也可以找到像Moment.js这样的库以及其他有用的库。

    2. 通过询问用户或猜测,通过其他方式确定客户端的本地时区。有关详细信息,请参阅this answer。获得时区ID(例如America/Los_Angeles等)后,请在服务器端使用此ID。只有在服务器端进行大量日期/时间操作时,此方法才有用。如果您只是转换为当地时间进行展示,请选择选项1.