web-dev-qa-db-ja.com

PHP date.timezone警告

私はこのエラーを受け取り続けます:

メッセージ:date()[function.date]:システムのタイムゾーン設定に依存するのは安全ではありません。あなたは必須であり、date.timezone設定またはdate_default_timezone_set()関数を使用します。これらの方法のいずれかを使用してもまだこの警告が表示される場合は、タイムゾーン識別子のスペルを間違えている可能性があります。代わりに、「EST/-5.0/DSTなし」に「America/New_York」を選択しました

私はphp.iniを編集して、これをその末尾に追加しました:date.timezone = "America/New_York"

Php.iniを保存してApacheを再起動しても、エラーが発生します。また、サーバー全体を再起動して無駄にしてみました。

CentOS 5.6でcPanel/WHMを実行しています。また、PHPハンドラはsuphpです。

次は何を試したらいいのかわかりません...

5
JT White

適切なphp.iniファイルを開き、以下を追加して、タイムゾーンを適切なものに置き換えます(タイムゾーン名のリスト- http://php.net/date.timezone ):

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "America/Chicago"

もう少し詳しく:

http://forums.modx.com/thread/33294/solved-warning-strtotime-function-strtotime-in-evo-1-01-on-php-5-3-

2
vulgarbulgar

システムに複数のphp.iniがあり、間違ったものが編集されているようです。 (suPHP_ConfigPathオプションを使用して)suPHPでvhostごとに異なるphp.iniディレクトリを指定することは可能だと思います。

いくつかのオプションが用意されています。まず、(エラーメッセージが示唆するように)以下を使用できます。

date_default_timezone_set()

ただし、これによりコードの移植性が低下します。

または、phpinfoページを作成して、スクリプトの実行時に読み込まれているphp.iniファイルを再確認することもできます。つまり、次のコンテンツを含むWebアクセス可能なphpファイルのみです。

<?php
phpinfo();

ページを表示して、「ロードされた構成ファイル」および「解析された追加の.iniファイル」とマークされたセクションを探します。これらにより、編集する必要のあるiniファイルがわかります。

リストされたファイルのallを確認することは価値があります。これらのファイルには、設定したものを上書きするスペルミスのdate.timezone設定が含まれている可能性があるためです。

1
Tom Hudson

文字列値の前後の引用符を削除して、これを修正しました。

そう、

date.timezone = "ヨーロッパ/ロンドン"

になる...

date.timezone =ヨーロッパ/ロンドン

そして問題は消えました。でも少し気になります。

0
David

私はこの問題を解決しました。最初は、間違ったphp.iniが読み取られていると思いました。何度も調べたところ、問題がわかりました。これは、php.iniの途中に余分な 'があったため、エラーが発生し、残りがロードできなかったためです。私はそれを修正しました、そしてそれは完璧に働きます。次のコマンドを実行すると、エラーがあるかどうかを確認できます。 grep php.ini |尾-n2
マリアーノ

0
mariano