10

php.iniファイルにデフォルトのタイムゾーンを設定しました。

date.timezone = Europe/Rome

編集後にサービスも再起動しましhttpdたが (service httpd restart)、呼び出すdate_default_timezone_get()と「UTC」値が返されます。

なぜこれが起こるのですか?

また、呼び出すとphp_info()、設定されたタイムゾーンが表示されますphp.ini

PS。私の英語でごめんなさい。

4

2 に答える 2

3

コード (フレームワークを含む) がタイムゾーンをまったく変更せ、PHP バージョン 5.1.x から 5.3.x で実行している場合、TZ環境変数がシステムのどこかに設定されている可能性があります。その後、date.timezone設定は無視されます。

date.timezone(強調鉱山)の PHP マニュアル ページを参照してください。

すべての日付/時刻関数で使用されるデフォルトのタイムゾーン。PHP 5.4.0 より前では、これは TZ 環境変数が設定されていない場合にのみ機能します。[…]

システムで環境変数が設定されているかどうかを確認するTZには、次を使用できます

if (isset($_ENV['TZ'])) {
    echo 'TZ=' . $_ENV['TZ'];
}
else {
    echo 'TZ not set';
}

または置く

phpinfo();

コードのどこかで、出力の一番下にある「PHP 変数」セクションを確認してください。

于 2012-08-12T22:57:30.820 に答える
0

私はちょうど同じ問題を抱えていました。

私のphp.iniでは、タイムゾーンに十分な情報がありました。
date.timezone = Europe/Paris

私はphpコマンド--ri date
でチェックし、タイムゾーンphp.iniうまく処理されていたので、エラーはiniファイルからのものではありませんでした。

エラーは、変数PHPIniDirhttpd.confが宣言されている apache のファイルから発生しました。

入れていたPHPIniDir "C:\PHP\"

次を与える最後のバックスラッシュを削除する必要があります。
PHPIniDir "C:\PHP"

このフィードバックがお役に立てば幸いです。

(正確には、私の環境は次のとおりです:Windows 7、php 5.4.32およびapache 2.2.25)

于 2014-09-11T13:46:03.720 に答える