Я пытаюсь получить дату не в GMT и преобразовать ее в GMT. Для этого я создаю два часовых пояса (один GMT и один не GMT) и пытаюсь получить смещение между ними. Однако смещение является правильным только в одном направлении. Для этого конкретного примера c я пытаюсь сравнить GMT +4 с GMT. Я ожидаю получить 4 часа (14400 секунд), когда я сравниваю часовой пояс GMT с часовым поясом GMT + 4, и -4 часа (-14400 секунд), когда я сравниваю часовой пояс GMT + 4 с GMT. Однако, сравнивая позже, я получаю 0 ... Вот что у меня есть
$default_timezone = new DateTimeZone(drupal_get_user_timezone());
$default_reg_date = new DateTime($reg_date_string, $default_timezone);
$gmt_timezone = new DateTimeZone('UTC');
$gmt_reg_date = new DateTime($reg_date_string, $gmt_timezone);
// Returns as 14400
$default_gmt_offset = $default_timezone->getOffset($gmt_reg_date);
// Returns as 0
$gmt_default_offset = $gmt_timezone->getOffset($default_reg_date);
Почему я не могу получить правильный номер, что я делаю не так? Получение смещения работает только в одном направлении?
Примечание: в этом конкретном примере c, drupal_get_user_timezone()
возвращает GMT + 4