Окончательный ответ
Комментарии выше дают гораздо лучший ответ, чем этот - посмотрите пакет PECL timezonedb
.
Я преобразовал это в сообществоWiki.
Исследование
Распределенный источник из пакета, такого как php-5.3.8.tar.bz2
, содержит перевод базы данных Olson в каталоге ext/date/lib
ифайлы timezonedb.h
, timezonemap.h
, fallbackmap.h
.Это означает, что где-то в системе разработки PHP есть код, который генерирует эту информацию из выпуска базы данных Olson, но по умолчанию он не распространяется.Кроме того, он самоочевидно не распространяется как часть SVN;Я извлек исходный код PHP 5.3, начиная с версии 321876, и каталог ext/date
не содержал ничего, что могло бы помочь (только сгенерированные файлы).
Итак, возможно, было бы целесообразно спросить сопровождающих PHP, как это сделать;это, конечно, должно быть возможно, и это должно быть автоматизировано (было бы глупо, если бы они не автоматизировали его).Но мне не ясно, что те, кто находится за пределами сопровождающих PHP, могут сказать, как это сделать.
Комментарии в файле NEWS указывают, что Дерик Ретанс может быть хорошим человеком для связи - он обновил базу данных до Олсона2010c (2010.3).Вы можете найти его адрес электронной почты на PHP в файле run-tests.php
на верхнем уровне исходного каталога;Вы можете найти альтернативный адрес электронной почты в источнике в каталоге ext/date/lib
.
Дерик Ретанс сделал доступным набор инструментов преобразования, использованный для создания файла timezonedb.h
из базы данных Olson здесь:
http://svn.xdebug.org/cgi-bin/viewvc.cgi/timelib/trunk/zones/?root=php
По состоянию на 2016-12-09, ссылка выше 404, и WayBack Machine в Интернет-архиве можетне помогло, потому что поиск по файлу robots.txt
не был разрешен.
Тем не менее, поиск Google для php timelib находит:
, что почти наверняка является заменой.