我用jQuery和PHP写了一个函数。这已经过测试,并且确实有效!
在PHP页面,你想拥有的时区作为一个变量,有此代码段靠近页面顶部的地方:
<?php
session_start();
$timezone = $_SESSION['time'];
?>
这将读取会话变量“时间”,我们现在即将创建。
在同一页上,在,你需要首先包括jQuery的:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
另外在,jQuery的下方,粘贴:
<script type="text/javascript">
$(document).ready(function() {
if("<?php echo $timezone; ?>".length==0){
var visitortime = new Date();
var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60;
$.ajax({
type: "GET",
url: "http://domain.com/timezone.php",
data: 'time='+ visitortimezone,
success: function(){
location.reload();
}
});
}
});
</script>
您可能会或可能没有注意到,但你需要将网址更改为你的实际域名。
最后一件事。你可能想知道timezone.php是什么。嗯,这很简单: (创建一个名为timezone.php并指向它与上面的网址一个新的文件)
<?php
session_start();
$_SESSION['time'] = $_GET['time'];
?>
如果这个工作正常,它会首先加载页面,执行JavaScript并重新加载页面。然后您将能够读取$ timezone变量并将其用于您的乐趣!它返回当前的UTC/GMT时区偏移量(格林威治标准时间-7)或你所在的任何时区。
注意,都在这个问题的答案是有缺陷的,因为他们只拿到了*电流*偏移。请参阅[时区标记wiki](http://stackoverflow.com/tags/timezone/info)中的“Time Zone!= Offset”,并查看dup问题及其答案。 –