(PHP 5> = 5.2.0)
Чтобы получить смещение от UTC
<?php
$offUTC = new DateTime('now', new DateTimeZone('Asia/Dubai'));
echo $offUTC->getOffset(); // in seconds
echo ($offUTC->getOffset()/3600); // in hours
?>
Чтобы получить разницу во времени между двумя произвольными зонами
<?php
$timezoneDubai = new DateTimeZone("Asia/Dubai");
$timezoneEDT = new DateTimeZone("America/New_York"); // note EDT may work, support is not clear
$datetimeDubai= new DateTime("now", $timezoneDubai);
$datetimeEDT = new DateTime("now", $timezoneEDT);
$timeOffset = $datetimeEDT->getOffset($datetimeDubai);
echo $timeOffset; // in seconds
echo ($timeOffset/3600) // in hours
?>
Я не уверен на 100%, какова ваша цель, но это должно вам помочь.Также не стесняйтесь проверить больше функций DateTime здесь: http://www.php.net/manual/en/book.datetime.php