Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 主要站点如何检测时区?_Php_Javascript_Zend Framework_Timezone - Fatal编程技术网

Php 主要站点如何检测时区?

Php 主要站点如何检测时区?,php,javascript,zend-framework,timezone,Php,Javascript,Zend Framework,Timezone,Facebook、myspace、MSN、craigslist;都可以检测时区并正确显示时间和日期,而无需提交表单或重新加载页面 他们是怎么做到的?我有一个相当大的网站,有人发表文章,需要显示正确的时间(上传下午3点或6点,取决于时区) 预载机?Javascript?加载页面并重新加载?我的网站目前有人进入该网站,第一次进入时,它会通过javascript重新加载页面,并更新其时区信息。然而,这是一件非常烦人的事情,我正在寻找另一种选择。我知道在加载时,我可以发送一个ajax请求,然后让它用正确

Facebook、myspace、MSN、craigslist;都可以检测时区并正确显示时间和日期,而无需提交表单或重新加载页面

他们是怎么做到的?我有一个相当大的网站,有人发表文章,需要显示正确的时间(上传下午3点或6点,取决于时区)

预载机?Javascript?加载页面并重新加载?我的网站目前有人进入该网站,第一次进入时,它会通过javascript重新加载页面,并更新其时区信息。然而,这是一件非常烦人的事情,我正在寻找另一种选择。我知道在加载时,我可以发送一个ajax请求,然后让它用正确的时区为用户更新整个站点的所有内容,但是如果我必须单击“上一步”,或者重新加载,它会询问我是否希望再次发送信息,这也是不好的。那么他们是如何做到的呢

我在玩Facebook,改变我在本地机器上的位置,它似乎每5分钟左右更新一次时区


我是php,基于zend framework。

您可以找到用户所在国家,然后为每个国家创建一些带有时区的数组。我想没有别的办法了。 您可以按如下方式获取用户国家/地区:

<?php
$file = file_get_contents("http://api.hostip.info/get_html.php?ip=".$_SERVER['REMOTE_ADDR']."");
?>

然后对
$文件使用
分解

还可以查看这些堆栈溢出代码:

没有“时区”请求头,或者类似的东西,所以不能使用php

但是使用javascript可以获得客户端的时区偏移量,然后可以发出xmlhttp请求将信息发送到php

见此:

很简单


希望这有帮助

我相信他们使用IP地址和地理位置。这就是它的全部内容。

首先,您应该在所有级别上与UTC合作,如果您不知道时区,请标记相应的时间。然后在本地客户端上,您可以使用timezoneOffset调整时间


试试这段php代码,它可以提供更好的精度

  <?php  $ip = $_SERVER['REMOTE_ADDR'];
    $json = file_get_contents("http://api.easyjquery.com/ips/?ip=".$ip."&full=true");
    $json = json_decode($json,true);
    $timezone = $json[localTimeZone];?>


提供了一个很棒的库,可以通过javascript自动检测时区。

@AdamSack主要网站通过注册用户的信息检测时区,他们有自己的geoip数据库。在plus中,darius说,更改计算机上的时间会被检测到,因此他们肯定会使用javascript。我同意@AdamSack still+1表示javascript;)时区偏移量不是常数,它随DST变化,因此客户端使用的时区可能不明确。IP、js时区偏移量和js语言环境的组合应该会提供更好的结果(您需要一个数据库,以某种方式将所有这些结合在一起)为什么要投反对票?我看到了两个缺点,如果提供商的服务器位于另一个时区,使用IP可能会给出错误的时区,而使用外部站点是不好的,因为我们不想依赖。谢谢你的意见,虽然我没有投反对票,但我认为你列出的两个理由是不使用它的非常有说服力的理由不,js ajax请求也是一个不错的选择