时区可能很难从数十个选项中进行选择。我想让这个过程变得更简单。我在野外看到了一些可以做出最好猜测的形式。我绞尽脑汁寻找解决方案,但没有任何运气。有人知道如何做吗?

有帮助吗?

解决方案

<强>使用Javascript:

var today = new Date();

alert( today.getTimezoneOffset() );

这会得到补偿(GMT-X),而不是实际的时区的名称。请记住相同的GMT偏移量可以跨多个时区对应,也有考虑到夏令时。然而,这可能是开始最容易的地方,总之让用户选择他们时区从下拉。

其他提示

您可以尝试通过自己的IP地址相匹配的一系列列表来检测用户的国家。有不同的方式来实现这一点,但最好是通过使用此API

使用的一个例子是: http://nl.ae/ iptocapi.php?类型= 1&IP = 00.00.00.00 。这将返回该IP地址的国家代码。然后,它是很容易以配合时区的国家代码。

一旦你找到了时区这种方式,您可以使用它作为一个下拉框中的默认值。

我在这里找到了一个更好、更强大的解决方案: http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/.

正如作者所解释的那样, Date.getTimezoneOffset() 不一致。

您可以使用 JavaScript 或多或少可靠地确定时区偏移。据我所知,HTTP 不提供任何方法来确定服务器上的客户端时区。

使用JavaScript:

<input type="hidden" id="visitorTZ" name="visitorTZ" />
<script type="text/javascript">
    d = new Date();
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top