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

时间:2014-03-27 11:28:20

标签: php datetime timezone

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

  

我的服务器位于美国,日期时间是2014年3月27日01:10:10。 (GMT0)   我用我的电脑访问柬埔寨的网站,日期时间是2014年3月27日08:10:10。 (GMT + 7)。

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

请帮忙!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

此代码适用于我

  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'));