时区很难从众多选项中进行选择。我想让这个过程更简单。我在野外看到了一些可以做出最佳猜测的形式。我为一个解决方案着想,但运气不错。有人知道怎么做吗?
答案 0 :(得分:10)
<强>使用Javascript:强>
var today = new Date();
alert( today.getTimezoneOffset() );
这将给出Offset(GMT-X),但不是实际的时区名称。请记住,相同的GMT偏移量可以与多个时区相对应,还必须考虑夏令时。但是,这可能是最简单的开始,而不是让用户从下拉菜单中选择他们的时区。
答案 1 :(得分:2)
您可以尝试通过将其IP地址与一系列列表进行匹配来检测用户所在国家/地区。有不同的方法可以实现这一目标,但最好的方法是使用this API。
使用示例如下:http://nl.ae/iptocapi.php?type=1&ip=00.00.00.00。这将返回该IP地址的国家/地区代码。然后很容易将国家/地区代码与时区匹配。
以这种方式找到时区后,您可以将其用作下拉框中的默认值。
答案 2 :(得分:2)
我在这里找到了一个更好更强大的解决方案:http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/。
正如作者所解释的,Date.getTimezoneOffset()
不一致。
答案 3 :(得分:1)
您可以使用JavaScript或多或少地可靠地确定时区偏移量。据我所知,HTTP没有提供任何方法来确定服务器上的客户端时区。
答案 4 :(得分:1)
使用Javascript:
<input type="hidden" id="visitorTZ" name="visitorTZ" />
<script type="text/javascript">
d = new Date();
document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60;
</script>