Get user timezone string with Javascript / PHP?

后端 未结 4 1375
猫巷女王i
猫巷女王i 2020-12-06 08:07

I\'m trying to get the user\'s timezone as a string on singup. example:

$timezone = \"Asia/Tel_Aviv\";

While researching the issue, I got

4条回答
  •  [愿得一人]
    2020-12-06 08:51

    You need to follow answers of Nicholas Pickering and deceze♦ partially. Do not use PHP's timezone_name_from_abbr function(Ref).

    Follow these steps to get UTC time of any timezone set in user system:

    1. Javascript (client-side):

      var dateVar = new Date();
      var offset = dateVar.getTimezoneOffset();
      //getTimezoneOffset - returns the timezone difference between UTC and Local Time
      document.cookie = "offset="+offset;
      
    2. Php (server-side):

      public function convert_utc_time($date)
      {
          $time_difference = isset($_COOKIE['offset'])?$_COOKIE['offset']:'';
          if($time_difference != ''){
              $time = strtotime($date);
              $time = $time + ($time_difference*60); //minutes * 60 seconds
              $date = date("Y-m-d H:i:s", $time);
          } //on failure of js, default timezone is set as UTC below
          return $date;
      }
      ..
      ..
      //in my function
      $timezone = 'UTC';
      $date = $this->convert_utc_time($post_date); //$post_date('Y-m-d H:i:s')
      echo strtotime($date. ' '. $timezone)
      

提交回复
热议问题