【问题标题】:How to display date/time client-side in user's time zone without using JavaScript?如何在不使用 JavaScript 的情况下在用户的时区显示日期/时间客户端?
【发布时间】:2012-08-20 02:28:14
【问题描述】:

假设我有以下DateTimeDateTime.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#

【讨论】:

  • 我只是给用户一个设置,让他们自己选择他们的时区。
【解决方案2】:

您可以尝试使用类似的东西
http://www.geobytes.com/iplocator.htm

【讨论】:

    猜你喜欢
    • 2010-12-22
    • 2018-01-14
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多