【问题标题】:How to display date/time client-side in user's time zone without using JavaScript?如何在不使用 JavaScript 的情况下在用户的时区显示日期/时间客户端?
【发布时间】:2012-08-20 02:28:14
【问题描述】:
假设我有以下DateTime:DateTime.UtcNow,我想根据用户的时区在客户端显示它,而不是重复到JavaScript。
我应该怎么做?我想我应该从某个地方获取当前请求的时区,不知何故,基于用户 IP 或其他什么?
【问题讨论】:
-
看起来确实应该有一个 HTTP 标头。快速查看My HTTP headers 会显示一个REQUEST_TIME 标头,它采用UNIX 时间戳的形式。不幸的是,它似乎是 UTC,这对于确定客户的时区没有任何好处。
标签:
c#
asp.net-mvc-3
date
utc
【解决方案1】:
据我所知,使用 IP 地址到物理地址的转换服务是 JavaScript 的唯一“自动”且可靠的替代方案。根据您希望 IP 地址到物理位置转换的准确程度,您可能需要转向付费服务(我在想,如果用户靠近时区边界,您可能会错误地放置它们)。
我还发现了将 IP 地址范围与国家/地区相匹配的免费可下载数据库。但是这些确实会不时更改,并且可能已过时。我会提供一个链接,但不久前我发现了这个。希望知道这样的事情是有帮助的。
您应该考虑到,您的用户可能希望手动设置他们的首选时区,以防他们旅行但仍希望看到相同的时间(我在工作中遇到过这种情况)。
请记住,JavaScript 是最简单的解决方案,也是最可靠的解决方案,所以如果你能侥幸使用它……那就去吧
更新:
我在这里发现了一个类似的问题,几乎涵盖了它How to get current user timezone in c#