9
votes

Comment mettre à jour TimeZonedb en PHP (mise à jour des informations sur les fuseaux horaires)?

phpinfo () montre notre système à utiliser "" Olson "TimeZone Database Version 2010.3". Je pense em> qui est maintenant obsolète, mais ne peut pas localiser un emplacement faisant autorité qui peut confirmer cela.

(A) Puis-je mettre à jour les informations de Timezones pour PHP dans son ensemble? (b) Si oui, comment met-je à jour cela? J'ai vu les instructions sur http://www.electrionoolbox.com/corre-php-timezone/ où il est dit que, après avoir installé le module approprié, il est dit que je dois: P>

You should add "extension=timezonedb.so" to php.ini


2 commentaires

Oui, vous devez ajouter une extension = Timezonedb.so dans php.ini, sinon comment PHP saurait qu'il doit utiliser cette extension ou non


Sudo Pecl installer TimeZonedb


4 Réponses :


4
votes

Autant que je sache, le TimeZone DB (TDB) est distribué dans PHP elle-même. En raison de cela, le TimeZone DB devient obsolète après un certain temps et que vous devriez mettre à jour PHP ou la TDB pour refléter les modifications apportées à TDB.

Il y a une extension Pecl qui libère de nouveaux packages TDB que vous pouvez télécharger et installer et les utiliser dans vos anciennes installations PHP.

Je ne suis pas conscient qu'il y a un moyen de mettre à jour le TDB directement dans PHP. L'extension Pecl a été créée pour cibler ce problème.


4 commentaires

Bonjour Dwich - Vous indiquez que si nous mettons à jour PHP lui-même, cela devrait également fonctionner? J'aurais pensé que les mises à jour PHP sont rares entre ...


En ce qui concerne Pecl - Je ne suis pas trop familier avec le concept - est-ce une partie standard intégrée de PHP maintenant?


@ tzmatt7447: Si vous mettez à jour PHP, il peut contenir une version plus récente de TDB, mais vous ne pouvez pas être sûr que c'est le plus récent. Il peut également y avoir de nouvelles sorties de TDB entre les versions normales de PHP à nouveau - vous ne pouvez pas être sûr que si vous mettez à jour PHP, vous obtiendrez le plus récent TDB et PHP ne sera pas publié simplement parce que TDB a été mis à jour.


Je ne suis pas un expert en PACL, si vous voulez l'essayer, recherchez des informations sur l'installation de votre système d'exploitation. Nous utilisons FreeBSD et l'installation est aussi simple que ceci (Pseudo Command): pkg_install pecl-Timezonedb . Puis redémarrez Apache et vous avez terminé.



2
votes

Il est préférable de mettre à jour votre version PHP (spécialement, si vous souhaitez la mettre à jour sur une machine Windows, sinon vous devez compiler l'extension vous-même) car dans la mesure que je me souviens que l'extension n'est pas prête à l'emploi. Seulement UNIX / LINUX - Donc, si vous souhaitez le faire sous Windows, vous devrez la compiler vous-même à l'aide du compilateur VC6 ou VC9).

Donc, si vous pouvez mettre à jour votre version PHP, ce serait la solution la plus rapide (c'était au moins pour moi), OFCourse PHP peut ne pas avoir les dernières info DB TimeZone DB, mais je devais résoudre un problème avec le TimeZone DB et c'était Corrigé dans la version ultérieure de PHP que j'avais. Si vous le faites pour UNIX / Linux, vous pouvez aussi bien essayer l'extension PECL, je pense que cela pourrait être plus facile et plus rapide pour vous alors.


1 commentaires

Depuis 2014.10 Version, l'extension peut être téléchargée en tant que DLL pour Windows, veuillez vous reporter à pecl.php.net/package/ Timezonedb



2
votes

L'extension Pecl est littéralement la TimeZone DB. Chaque fois qu'une nouvelle version de la DB est publiée à partir de ici , l'extension est recompanée avec le fuseau horaire mis à jour DB.

Donc, vous écrasiez réellement l'ancienne extension avec une version nouvellement recompilée et redémarrez votre serveur Web; En supposant que PHP est utilisé comme module.


0 commentaires

1
votes

Pour effectuer une mise à jour complète de fuseau horaire (nous avions des problèmes avec une erreur Russie / Moscou incorrecte):

#for OS - CentOS and MySQL
yum update tzdata
mysql_tzinfo_to_sql /usr/share/zoneinfo
#for PHP
pecl upgrade timezonedb
pecl upgrade intl

#dependencies you may need for the above:
yum install gcc 
yum install gcc-c++
yum install libicu-devel


2 commentaires

Lorsque "PECL Upgrade IntL" est exécuté, il demande "Spécifiez où des bibliothèques et des en-têtes ICU peuvent être trouvées [par défaut]:" Que ajouter ici?


Vérifiez ici les indices: