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

Mah*_*n M 3 timezone header http response

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

Mat*_*int 6

一些东西:

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

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

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