Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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_Datetime_Timezone - Fatal编程技术网

如何使用PHP获取客户端本地时区而不是服务器时区?

如何使用PHP获取客户端本地时区而不是服务器时区?,php,datetime,timezone,Php,Datetime,Timezone,我们如何检测用户的本地时间? 比如说, 我的服务器位于美国,日期时间为2014年3月27日01:10:10。(GMT0) 我使用我的电脑从柬埔寨访问我的网站,日期时间为2014年3月27日08:10:10。(格林尼治标准时间+7) 当我在美国访问我的网站时,如何获取我的PC日期时间 请帮忙 您必须使用javascript(在客户端运行,可以访问系统时间)将其发送到服务器。这段代码对我来说很好 echo <<<EOE <script type="text/java

我们如何检测用户的本地时间? 比如说,

我的服务器位于美国,日期时间为2014年3月27日01:10:10。(GMT0) 我使用我的电脑从柬埔寨访问我的网站,日期时间为2014年3月27日08:10:10。(格林尼治标准时间+7)

当我在美国访问我的网站时,如何获取我的PC日期时间


请帮忙

您必须使用javascript(在客户端运行,可以访问系统时间)将其发送到服务器。

这段代码对我来说很好

  echo <<<EOE
   <script type="text/javascript">
     if (navigator.cookieEnabled)
       document.cookie = "tzo="+ (- new Date().getTimezoneOffset());
   </script>
EOE;
  if (!isset($_COOKIE['tzo'])) {
    echo <<<EOE
      <script type="text/javascript">
        if (navigator.cookieEnabled) document.reload();
        else alert("Cookies must be enabled!");
      </script>
EOE;
    die();
  }
  $ts = new DateTime('now', new DateTimeZone('GMT'));
  $ts->add(DateInterval::createFromDateString($_COOKIE['tzo'].' minutes'));

echo您不能。您可以为用户提供一种指定其本地时区的方法,并将其存储在用户配置文件中,但您无法仅从浏览器确定客户端的时区。另一方面,美国的任何时间肯定不是GMT,而是负偏移量。如果您的服务器实际将其本地时间报告为GMT(+/-0),那么它的配置不正确。您好!事实上,在我将datetime插入数据库之前,我将它转换为UTC或GMT0。嗨!我们可以检测客户端的IP地址然后检测国家吗?也许,这就是您要寻找的。