没有冒号的时区格式

时间:2017-11-23 22:31:19

标签: php timezone

我试图让时区格式只显示-6而不是-06:00,但无法解决这个问题。

我当前的代码输出格式(因为我在中央时间)为-21600

所以我试图使用以下内容转换它......

$time_offset_get = new \DateTime('now', new DateTimeZone(America/Chicago));
$conn_timezone_offset = $time_offset_get->format('P');

但是当然,这个($ conn_timezone_offset)给了我-06:00 是否有其他格式代码可以正确执行此操作,或者我完全错误地执行此操作。

总的来说,我只是尝试将像美国/芝加哥这样的时区偏移名称或3位数字时区代码转换为数字偏移而不使用PHP冒号。

1 个答案:

答案 0 :(得分:1)

使用DateTime::getOffset

  

成功时返回中的时区偏移量,或者返回FALSE   故障。

要获得以小时为单位的偏移量,只需将值除以3600。

$now = new \DateTime('now', new DateTimeZone('America/Chicago'));
$offset = $now->getOffset();
if ($offset !== false) {
    $offset = round($offset / 3600);
} else {
    // the error handling here
}