Почему timezone_name_from_abbr возвращает пустую строку?

#php #timezone

#php #Часовой пояс

Вопрос:

Почему следующее возвращает пустую строку:

 $offset = -10; //UM10

echo timezone_name_from_abbr('', $offset * 3600, true); //empty string
  

Я использую PHP 5.3.0.

Спасибо всем за любую помощь.

Комментарии:

1. Возможно, в -10 нет именованного часового пояса, который переводит на летнее время? попробуйте удалить параметр ‘true’, чтобы летнее время не принималось во внимание при поиске.

Ответ №1:

Потому что вы установили для параметра перехода на летнее время значение true:

 $ php -r "echo timezone_name_from_abbr('', -10 * 3600, false);"
Pacific/Honolulu
  

Комментарии:

1. Хм, я вижу 1. Откуда мне знать, что для часового пояса, который я еще не знаю и пытаюсь восстановить, нужно установить DST в значение false? Может быть, будет лучше, если я просто полностью проигнорирую летнее время?

2. @Abs хм, на самом деле bugs.php.net/44780 Я не вижу, чтобы ему присваивался разрешенный, и это точно соответствует вашей проблеме

3. Вау, с 2008 года. Черт возьми! Я думаю, что прокомментирую эту ошибку. Спасибо, что указали мне на это. Я думаю, что пока я просто исключу летнее время.