猜测用户';PHP中的s时区

猜测用户';PHP中的s时区,php,timezone,Php,Timezone,从PHP5.3开始(我认为),需要在php.ini文件中设置date.timezone,或者通过函数在运行时设置。如果不设置此值,则会出现一个错误,大致如下所示: PHP警告::依赖系统的时区设置是不安全的。您需要使用date.timezone设置或date\u default\u timezone\u set()函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,则很可能是您拼错了时区标识符。我们在文件在线行中为“-4.0/DST”选择了“美国/纽约” 我想知道它使用什么机制来猜测时区,

从PHP5.3开始(我认为),需要在
php.ini
文件中设置
date.timezone
,或者通过函数在运行时设置。如果不设置此值,则会出现一个错误,大致如下所示:

PHP警告::依赖系统的时区设置是不安全的。您需要使用date.timezone设置或date\u default\u timezone\u set()函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,则很可能是您拼错了时区标识符。我们在文件在线中为“-4.0/DST”选择了“美国/纽约”


我想知道它使用什么机制来猜测时区,因为它似乎非常准确,我想自己知道,这样我可以以更友好的方式向用户显示此错误,或者允许他们接受此错误作为正确的时区。

我可能会使用
日期\u默认\u时区\u get()
函数:

按照优先顺序,此函数 通过以下方式返回默认时区:

  • 使用日期\默认\时区\集()读取时区集 功能(如有)
  • 读取TZ环境变量(如果非空)(在PHP之前) 5.3.0)
  • 读取date.timezone ini选项的值(如果设置)
  • 查询主机操作系统(如果支持并允许) (操作系统)

我可能会使用
date\u default\u timezone\u get()
函数:

按照优先顺序,此函数 通过以下方式返回默认时区:

  • 使用日期\默认\时区\集()读取时区集 功能(如有)
  • 读取TZ环境变量(如果非空)(在PHP之前) 5.3.0)
  • 读取date.timezone ini选项的值(如果设置)
  • 查询主机操作系统(如果支持并允许) (操作系统)

迈克的方法只会让你知道网络服务器的时区。 我相信您正在尝试获取用户的时区。 我使用jQuery和PHP编写了一个函数。这是经过测试的,确实有效

在希望将时区作为变量的PHP页面上,将以下代码片段放在页面顶部附近:

<?php    
    session_start();
    $timezone = $_SESSION['time'];
?>

这将读取会话变量“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>

$(文档).ready(函数(){
如果(“.”长度==0){
var visitortime=新日期();
var visitortimezone=“GMT”+-visitortime.getTimezoneOffset()/60;
$.ajax({
键入:“获取”,
url:“http://domain.com/timezone.php",
数据:“时间=”+访问时区,
成功:函数(){
location.reload();
}
});
}
});
您可能注意到了,也可能没有注意到,但是您需要将url更改为您的实际域

最后一件事。您可能想知道什么是heck timezone.php。那么很简单, (创建一个名为timezone.php的新文件,并用上面的url指向它)


如果工作正常,它将首先加载页面,执行JavaScript,然后重新加载页面。然后,您将能够读取$timezone变量并根据自己的喜好使用它!它返回当前UTC/GMT时区偏移(GMT-7)或您所在的任何时区

干杯


迈克的方法只会让你知道web服务器的时区。 我相信您正在尝试获取用户的时区。 我使用jQuery和PHP编写了一个函数。这是经过测试的,确实有效

在希望将时区作为变量的PHP页面上,将以下代码片段放在页面顶部附近:

<?php    
    session_start();
    $timezone = $_SESSION['time'];
?>

这将读取会话变量“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>

$(文档).ready(函数(){
如果(“.”长度==0){
var visitortime=新日期();
var visitortimezone=“GMT”+-visitortime.getTimezoneOffset()/60;
$.ajax({
键入:“获取”,
url:“http://domain.com/timezone.php",
数据:“时间=”+访问时区,
成功:函数(){
location.reload();
}
});
}
});
您可能注意到了,也可能没有注意到,但是您需要将url更改为您的实际域

最后一件事。您可能想知道什么是heck timezone.php。那么很简单, (创建一个名为timezone.php的新文件,并用上面的url指向它)


如果工作正常,它将首先加载页面,执行JavaScript,然后重新加载页面。然后,您将能够读取$timezone变量并根据自己的喜好使用它!它返回当前UTC/GMT时区偏移(GMT-7)或您所在的任何时区

干杯


我知道这是不明显的,但我不是为了web开发而这样做的。在这个例子中,我在一个运行在客户端桌面上的应用程序中使用PHP。我知道这是不明显的,但我并不是为了web开发而这样做的。在这个例子中,我在一个运行在客户端桌面上的应用程序中使用PHP。没关系。每个人都有大脑放屁,看看我的问题清单吧!;)没关系。每个人都有大脑放屁,看看我的问题清单吧!;)那很酷。我不是在寻找客户机的时区,但我将在我的另一个项目中使用此代码。干得好,这