如何在php中从GMT + 0检索时区偏移量?

2022-08-30 22:31:22

我不是php专家。我知道PHP支持时区。

对于 PHP 支持的给定时区 TZ,我需要检索已知 UTC(即 GMT+0)的偏移量(即,添加或减去的小时数和分钟数)以获得 TZ 区域中的时间。

我怎样才能做到这一点?最终,我需要为PHP中所有支持的时区获取这些偏移量。谢谢。


答案 1

这对于将偏移值转换为GMT格式非常有用,而无需任何计算

<?php

  //target time zone
  $target_time_zone = new DateTimeZone('America/Los_Angeles');

  //find kolkata time 
  $date_time = new DateTime('now', $target_time_zone);

  //get the exact GMT format
  echo 'GMT '.$date_time->format('P');

答案 2

这是一个如何以秒为单位获取时区偏移量的简单示例:

$dtz = new DateTimeZone('Europe/Sofia');
$time_in_sofia = new DateTime('now', $dtz);
echo $dtz->getOffset( $time_in_sofia );

以 GMT+x 格式显示:

$offset = $dtz->getOffset( $time_in_sofia ) / 3600;
echo "GMT" . ($offset < 0 ? $offset : "+".$offset);

工作示例


推荐