3

Fedora VM に ZendServer CE (PHP 5.2) をインストールし、システムのタイムゾーンを「アメリカ/シカゴ」に設定しています。php.ini ファイルに date.timezone = 'UTC' があり、date_default_timezone_get() を呼び出すか、Web ページに date('T') を表示すると、'CDT' と表示されます。

date_default_timezone_get() のphp.netのドキュメントには、デフォルトのタイムゾーンを選択するときに次の順序に従うと書かれています。

 - Reading the timezone set using the
   date_default_timezone_set() function
   (if any)
 - Reading the TZ environment variable
   (if non empty)
 - Reading the value of the
   date.timezone ini option (if set)
 - Querying the host operating system
   (if supported and allowed by the OS)

「セットアップ」GUI を使用してシステムのタイムゾーンを変更し、サーバーを再起動すると、date('T') は、php.ini の内容に関係なく、システムのタイムゾーンを変更したものを返します。また、TZ 環境変数もありません。現在、コードのどこにも date_default_timezone_set() を使用していません。

何が起こっているのでしょうか?date_default_timezone_set('UTC') を呼び出すことでいつでもシステムのタイムゾーンをオーバーライドできることはわかっていますが、可能であれば php.ini ファイルに依存したいと思います。

助けてくれてありがとう、

デイブ

4

1 に答える 1

1

TZ が設定されていると思いますが、そうではないと思います。このチュートリアルをチェックして、TZ をよりよく理解してください。

http://www.cyberciti.biz/tips/date-command-set-tz-environment-variable.html http://www.cyberciti.biz/faq/howto-linux-unix-change-setup-timezone-tz -変数/

また、ユーザーの .bashrc の内容を確認してください

于 2010-04-08T20:39:07.773 に答える