Вы можете использовать такой код для достижения своей цели:
$tz = date_default_timezone_get(); // or your timezone of choice
$dt = new DateTime;
$dtz = new DateTimeZone($tz);
$off = $dtz->getOffset($dt);
$s = $off >= 0;
$h = abs(floor($off / 3600));
$m = abs($off % 3600);
printf("(GMT%s%02d:%02d) %s", $s ? '+' : '-', $h, $m, $tz);
Я не уверен, достаточно ли встроенной информации в PHP, чтобы получить точное описание, которое вы ищете; в противном случае вам придется вручную сопоставить имена встроенных часовых поясов с собственными описаниями (горное время и т. д.).
Посмотреть в действии .