8

时区可能很难从几十个选项中选择。我想让这个过程更简单。我在野外看到了一些可以做最好猜测的形式。我盯着解决方案,但没有任何运气。有人知道怎么做吗?

4

5 回答 5

10

Javascript:

var today = new Date();

alert( today.getTimezoneOffset() );

这将给出偏移量 (GMT-X),而不是实际的时区名称。请记住,相同的 GMT 偏移量可以对应多个时区,并且还必须考虑夏令时。然而,这可能是最容易开始的地方,没有让用户从下拉列表中选择他们的时区。

于 2009-04-20T12:19:37.663 回答
2

您可以尝试通过将用户的 IP 地址与一系列列表相匹配来检测用户所在的国家/地区。有不同的方法可以实现这一点,但最好的方法是使用这个 API

使用示例如下:http ://nl.ae/iptocapi.php?type=1&ip=00.00.00.00 。这将返回该 IP 地址的国家代码。然后很容易将国家代码与时区匹配。

以这种方式找到时区后,您可以将其用作下拉框中的默认值。

于 2009-04-20T12:21:59.247 回答
2

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

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

于 2010-05-17T21:14:43.193 回答
1

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

于 2009-04-20T12:20:29.983 回答
1

使用 Javascript:

<input type="hidden" id="visitorTZ" name="visitorTZ" />
<script type="text/javascript">
    d = new Date();
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script>
于 2009-04-20T12:21:37.533 回答