[英]What is the best way to detect and store the timezone the client of a web app is in?
我有一个多时区 Web 应用程序,它将所有日期时间值以 UTC 格式存储在数据库中,当服务器上发生操作时,我可以轻松地将时间转换为 UTC。
但是,当客户端输入时间或时间跨度时,检测和存储它的最佳方法是什么?
我目前正在做以下事情:
不管实际的实现如何,这似乎是一个优雅的解决方案。 有人有更好的方法吗?
我正在做一些非常相似的事情,但我现在认为我更喜欢使用javascript在客户端将所有时间转换为本地。 服务器将在生成的页面中以 UTC 给出所有时间,一旦页面加载, javascript将转换它。
这消除了服务器端代码的混乱,因为我总是知道现在是几点(UTC)。 在客户端,我使用jquery和each()
函数一次格式化所有时间值。 我在隐藏字段中将每个时间写为Unix时间,以便使用jquery轻松处理。
我看到这种方法的唯一问题是:
a) 我在javascript 中还没有一个非常好的日期/时间格式化例程,并且
b) 如果用户关闭了javascript ,则它不起作用。
您可以使用 HttpRequest 对象的“header”属性来查询客户端发送的“If-Modified-Since”标头。 此标头应包含格式包含客户端时区的日期,如下所示:
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
一个简单的子字符串提取将为您提供时区代码。 但是,恐怕并非所有浏览器在发送该标头时都是一致的,因此您应该对其进行一些试验。
问候,法布里齐奥
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.