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