我试图让时区格式只显示-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冒号。
答案 0 :(得分:1)
成功时返回秒中的时区偏移量,或者返回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
}