10

phpinfo() は、システムが「"Olson" Timezone Database Version 2010.3」を使用していることを示しています。それは今では古くなっていると思いますが、それを確認できる信頼できる場所を見つけることができません.

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

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

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

4

4 に答える 4

4

私の知る限り、タイムゾーンDB(TDB)はPHP自体の中に分散されています。そのため、タイムゾーンDBはしばらくすると廃止され、TDBの変更を反映するようにPHPまたはTDBを更新する必要があります。

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

PHPでTDBを直接更新する方法があるかどうかはわかりません。PECL拡張機能は、この問題を対象として作成されました。

于 2010-08-25T13:31:40.153 に答える
2

PHP のバージョンを更新するだけのほうがよいでしょう (特に、Windows マシンで更新する場合は、拡張機能を自分でコンパイルする必要があります)。 linux - したがって、Windows で実行する場合は、VC6 または VC9 コンパイラを使用して自分でコンパイルする必要があります)。

したがって、最速の解決策となるPHPバージョンを更新できる場合(少なくとも私にとってはそうでした)、もちろんPHPには最新のタイムゾーンデータベース情報がない可能性がありますが、タイムゾーンデータベースの問題を解決する必要があり、私が持っていたPHPの新しいバージョン。unix/linux で実行している場合は、PECL 拡張機能を試してみるとよいでしょう。そのほうが簡単で高速です。

于 2011-04-29T15:50:10.197 に答える
2

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

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

于 2015-01-06T21:56:58.640 に答える
1

タイムゾーンを完全に更新するには (ロシアとモスクワのタイムゾーンが正しくないという問題がありました):

#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
于 2017-10-05T09:26:39.873 に答える