2014-12-29 2 views
2

В приложении PHP, работающем на Fedora, я работал с часовым поясом, и мне любопытно узнать разницу между tzdata и timezonedb и как PHP использует их для вычисления timezome?В чем разница между базой данных tzdata и timezonedb?

Вопрос состоял в том, что «Европа/Москва» должна быть GMT + 3, но PHP добавлен один час, т.е. GMT + 4. Большинство растворов о запуске

pecl upgrade timezonedb 

проверки Incomplete list of timezones generated by PHP

Без установки расширения timezonedb мы обновили tzdata

yum update tzdata 

и тогда проблема была решена!

Итак, PHP использует tzdata, если timezonedb не установлен или что?

PHP: 5.5.18
ОС: Fedora 19

ответ

0

Одна из баз данных (tzdata) судов с PHP, это используется по умолчанию. Более поздняя версия db может быть установлена ​​отдельно в системе через PECL.

Pecl timezonedb extension указывает, что по умолчанию используется встроенный db.

Это расширение является заменой встроенной временной зоны базы данных, которая поставляется с PHP. Вы должны установить это расширение , если вам нужно получить более позднюю версию базы данных часового пояса, чем , которая поставляется с PHP.

+0

Благодарности. Поэтому, если timezonedb установлен, PHP использует его. Если нет - мой случай -it будет использовать tzdata. Это верно? –

+0

Я считаю, что это правильно. Я предполагаю, что различные ОС «заботятся о некоторых деталях конфигурации, когда вы устанавливаете внешний db, но не на 100%. Нашел лучшую ссылку на эту тему, хотя и обновил свой ответ. – quickshiftin

+0

Ух, на самом деле, все еще не так уж много информации; ищет лучшую ссылку, но думаю, что это так. – quickshiftin

-1

Для CentOS 6 пользователей с PHP 5.5+ использовать это:

yum -y update tzdata 
pecl channel-update pecl.php.net 
pecl install --ignore-errors timezonedb 
echo "extension=timezonedb.so" > /etc/php.d/timezonedb.ini 

 Смежные вопросы

  • Нет связанных вопросов^_^