質問

phpinfo()は、システムが「 "olson" Timezoneデータベースバージョン2010.3 "を使用していることを示しています。私 考える 現在は古くなっていますが、それを確認できる権威ある場所を見つけることはできません。

(a)PHP全体のタイムゾーン情報を更新できますか? (b)その場合、これを更新するにはどうすればよいですか?で指示を見ました http://www.electrictoolbox.com/correct-php-timezone/ 適切なモジュールをインストールした後、次のように書かれていると書かれています。

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

それをする必要がありますか? PHPは正しいファイルを自動的に使用する必要はありませんか?

正しい解決策はありません

他のヒント

私が知る限り、TimeZone DB(TDB)はPHP自体に分布しています。そのため、TimeZone DBはしばらくすると時代遅れになり、TDBの変化を反映するためにPHPまたはTDBを更新する必要があります。

古いPHPインストールでそれらをダウンロードして使用できる新しいTDBパッケージをリリースするPECL拡張機能があります。

PHPでTDBを直接更新する方法があることはわかりません。 PECL拡張機能は、この問題をターゲットにするために作成されました。

PHPバージョンを更新する方が良いです(特に、Windowsマシンで更新したい場合、そうでなければ拡張機能をコンパイルする必要があります)。 Linux-したがって、Windowsでやりたい場合は、VC6またはVC9コンパイラを使用して自分でコンパイルする必要があります。

したがって、最速のソリューションになるPHPバージョンを更新できる場合(私にとっては少なくともは)、PHPは最新のTimeZone DB情報を持っていないかもしれませんが、TimeZone DBの問題を解決する必要があり、それが修正されました。私が持っていたPHPの後のバージョン。 Unix/Linuxでそれを行っている場合は、PECL拡張機能を試してみることもできます。

PECL拡張は文字通りTimeZone DBです。 DBの新しいバージョンがリリースされるたびに ここ, 、拡張機能は、更新されたタイムゾーンDBで再コンパイルされます。

したがって、実際には、新しく再コンパイルされたバージョンで古い拡張機能を上書きし、Webサーバーを再起動します。 PHPがモジュールとして使用されていると仮定します。

完全なタイムゾーンの更新を行うには(ロシア /モスクワのタイムゾーンが間違っていることに問題がありました):

#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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top