6

新しいコンピューターを手に入れたばかりで、PHP/MySQL/データベースなどをセットアップしています...このカーブボールが投げられたことを除いて、私はちょうどそこにいると思います。ログイン スクリプトは正常に動作していましたが、次の警告が表示されます (JSON が台無しになります)。

警告: date() [function.date]: システムのタイムゾーン設定に頼るのは安全ではありません。date.timezone 設定または date_default_timezone_set() 関数を使用する必要が あります。これらの方法のいずれかを使用してもこの警告が表示される場合は、タイムゾーン識別子のスペルが間違っている可能性があります。.../php/login.phpの47行 目で、「EST/10.0/no DST」の代わりに「Antarctica/Macquarie」を選択しました。

私のコードは明らかにdate()ライブバージョンと古いマシンを使用して動作しています。次の 2 行のコードに対して 2 つの警告が表示されます。

$date = date("ymd");

$this_year = date("y");

私の調査 (ここを参照) は、これらの関数の動作が php.ini に依存することを示唆しています。

では、新しいマシンで php.ini を変更する必要がありますか、それとも非推奨の方法を使用しているのdate()でしょうか?

ありがとう。

4

4 に答える 4

12

を使用する場合、php.ini ファイルを変更する必要はありませんdate_default_timezone_set()。作業するタイムゾーンに設定するだけです。

このようなものは、構成ファイルまたは日付を操作しているページ (1 ページのみの場合) に配置する必要があります。

date_default_timezone_set('America/Los_Angeles');
于 2012-04-25T01:48:00.257 に答える
4

これは例外ではなく、新しいマシンのエラー報告設定が古いマシンと異なるため、おそらく現在表示されている警告です。

警告の提案に従い、date_default_timezone_set()必要なスクリプトでタイムゾーンを設定するために使用することをお勧めします。

于 2012-04-25T01:48:22.330 に答える
4

php.ini を変更する必要はありません。

ただし、ほとんどの php ファイルで使用するタイムゾーンがある場合は、次の行を php.ini に追加するとうまくいくはずです。

date.timezone = "Your/Timezone"

私の場合、次の行を php.ini に追加しました。個人的には、すべてのサーバーを UTC タイムゾーンに保つことを好みます。

date.timezone = "UTC"
于 2012-05-12T19:27:06.317 に答える
4

まず、ご存知かもしれませんが、これで問題は解決します。

date_default_timezone_set('Your/Timezone');

php.ini で設定する場合は、以下を変更します

[Date]
; ...
; ...
date.timezone = Your/Timezone
于 2012-04-25T01:50:12.190 に答える