Possible Duplicate:
How can I determine a web user's time zone?
最好的方法是什么? php 或 javascript。有人可以提供一些片段吗?谢谢。
最佳答案
这将使您获得作为 PHP 变量的时区。 我使用 jQuery 和 PHP 编写了一个函数。这已经过测试,确实有效!
在您希望将时区作为变量的 PHP 页面上,将这段代码放在页面顶部附近的某处:
<?php
session_start();
$timezone = $_SESSION['time'];
?>
这将读取我们现在要创建的 session 变量“time”。
在同一页面上,在 <head>
中部分,首先您需要包含 jQuery:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
也在<head>
部分,粘贴此 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://example.com/timezone.php",
data: 'time='+ visitortimezone,
success: function(){
location.reload();
}
});
}
});
</script>
您可能注意到也可能没有注意到,但您需要将 url 更改为您的实际域。
最后一件事。您可能想知道 timezone.php 到底是什么。好吧,就是这样: (创建一个名为 timezone.php 的新文件并使用上面的 url 指向它)
<?php
session_start();
$_SESSION['time'] = $_GET['time'];
?>
如果此操作正常,它将首先加载页面,执行 JavaScript,然后重新加载页面。然后您将能够读取 $timezone 变量并尽情使用它!它返回当前的 UTC/GMT 时区偏移量 (GMT -7) 或您所在的任何时区。
您可以在我的 blog 上阅读更多相关信息
关于php - 获取用户时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4746249/