web-dev-qa-db-ja.com

PHP構成:システムのタイムゾーン設定に依存するのは安全ではありません

ここで奇妙なもの。 php 5.3.0にアップグレードしただけで、アップグレード後に次の警告が表示されます。

警告:getdate()[function.getdate]:システムのタイムゾーン設定に依存することは安全ではありません。 date.timezone設定またはdate_default_timezone_set()関数を使用するには、必須です。これらの方法のいずれかを使用してもこの警告が引き続き表示される場合は、タイムゾーン識別子のつづりを間違えている可能性があります。 「CST/-6.0/no DST」に「America/Chicago」を選択しました

さまざまなフォーラムを見て、問題を解決するには、php.iniで日付ゾーンを編集し、Apacheを再起動するだけです。

私にはうまくいきませんでした。

私は試した

date.timezone="America/New_York"

date.timezone=America/New_York

date.timezone="US/Central"

変更を加えた後、Apacheを再起動しました。

私はまだ古いバージョンのphpをインストールしているので、現在のバージョンのphpがロードするときに使用するphp.iniを編集していることを確認しました

/usr/local/php5/lib/php.ini

まだ警告が表示されます。

助言がありますか?

お時間をいただきありがとうございます。

64
Ole Media

元の質問にコメントしたTchalvakは、私のために頭に釘を打ちました。私は編集しています(Debianを使用しています):

/etc/php5/Apache2/php.ini

...これは正しいタイムゾーンを持ち、date.timezoneでロードされている唯一の.iniファイルでしたが、Bashを介してスクリプトを実行したときに上記のエラーが表示されました。編集しているべきだとは思いもしませんでした。

/etc/php5/cli/php.ini

同じように。 (まあ、私にとっては「同様」でした、もちろんあなたにとっては違うかもしれませんが、php.iniのApacheとCLIバージョンを今すぐ同期させます)。

37
Vaughany

Funcでタイムゾーンを設定しようとしましたか? http://pl.php.net/manual/en/function.date-default-timezone-set.php

17
cichy

最近、2台のラップトップでApacheとPHPをセットアップする必要がありました。たくさんの涙と歯ぎしりの後、phpinfoの出力で(何らかの理由でPHPのインストール中に注意を払わず、インストーラーが悪い)Apacheがphp.iniが存在しない場所にあると予想しました。

2つの選択肢:

  1. apacheが本来あるべき場所に配置するか、
  2. php.iniの実際の場所にApacheを向ける

...そしてApacheを再起動します。その時点でタイムゾーン設定が認識されるはずです。

7
Garvin

.htaccessファイルを開き、この行をファイルに追加して保存し、再試行します。

php_value date.timezone "America/Sao_Paulo"

これは私のために動作します。

6
codex

これを試して、それは私のために働く。

date_default_timezone_set('America/New_York');

文句を言っていた実際のファイル。

5
selangk

明らかに、私はこの質問について少しシーズンから外れていますが、次の被害者のために:私はこの問題を抱えていたので、私の場合は(成功せずに同じことを試みたOPとは対照的に)修正は修正することでしたphp.ini、変更

date.timezone = America/New York

date.timezone = America/New_York

それはアンダースコアを追加しています。

2
user1613163

Index.phpを次のように変更してください。

require_once($yii);
$app = Yii::createWebApplication($config);
Yii::app()->setTimeZone('UTC');
$app->run();
2
Ashutosh Nigam

Php.iniファイルの構文エラー、特にbefore Dateパラメーターを確認します。これにより、ファイルが正しく解析されなくなります。

2
amercader

その行のコメントを解除するためにセミコロンを削除するのを忘れた可能性があります。のために date.timezone = "US/Central"行、その行の前にセミコロンがないことを確認してください。

1
SirNikkolas

/etc/php.iniを変更しました

[日付];日付関数で使用されるデフォルトのタイムゾーンを定義します。 http://php.net/date.timezone date.timezone =( 'Asia/kolkata')

そして今、うまく機能しています。

ヴィピンパル

1
Vipin Pal

奇妙なことに、タイムゾーン宣言をphp.iniファイルのTOPに置くことでエラーを修正できることがわかりました。

それはすでに私のphp.iniにありました。実際には2回です。みんなが別のiniがロードされているはずだと言っていたので、私は髪を引っ張っていました...ありませんでした。

これが他の人の時間/脱毛を節約できることを願っています。

0
Soft Bullets