2

date_default_timezone_set()以前のコードで呼び出されたことを確認できるPHPのメソッドを知っている人はいますか?

を呼び出して php.ini に設定されているタイムゾーンを確認できますが、システムini_set()を使用date_default_timezone_get()すると、時刻が推測されるか、設定された時刻が返され、2 つを区別する方法がわかりません。

タイムゾーンが php.ini に設定されている場合、実行する必要はまったくありませんdate_default_timezone_set()。php.ini で設定されていない場合、以前のコードで を使用して日時が設定されている可能性がありますdate_default_timezone_set()。その場合、コードでタイムゾーンを再度設定する必要はありません。ただし、タイムゾーンが設定されていない場合は、設定する必要があります。問題はdate_default_timezone_get()、この場合空の値を返さないことですが、PHP のバージョンによっては、「UTC」またはサーバーのローカル タイムゾーンのいずれかになります。

4

1 に答える 1

1

呼び出しdate_default_timezone_set()はグローバル ( ) 設定には影響しないことに注意してください。そのため、関数.iniを介して確認できます。ini_get()

if(date_default_timezone_get()!=ini_get('date.timezone'))
{
   //date_default_timezone_set() was used
}

ただし、使用する場合ini_set()-それは機能しません(私が正しく理解している場合、質問でこの問題について説明しました)。これは、現在のスクリプトインスタンスのini設定を変更するためです(ただし、iniファイルではありません自体)。だから、私はあなたが使うべきではないとini_set()思うdate_default_timezone_set()

edit :date.timezoneで設定されていない場合は、アプリケーションの開始時にphp.ini使用できますini_set()(したがって、一度だけ使用します) - この設定を設定します。

于 2013-09-13T10:07:13.797 に答える