ホームページ  >  記事  >  バックエンド開発  >  PHP php.ini のタイムゾーン設定の問題

PHP php.ini のタイムゾーン設定の問題

WBOY
WBOYオリジナル
2016-06-23 14:29:27999ブラウズ

PHPのphp.iniのタイムゾーン設定の問題

2009-09-10 15:40

php5.1.0から、phpにdate.timezoneオプションが追加されました。デフォルトではini . 以下は閉鎖されています。つまり、表示される時刻は (どの php コマンドを使用しても) グリニッジ標準時であり、私たちの時刻 (北京時間) とはちょうど 8 時間異なります。 通常の時刻に戻すには、以下の 3 つの方法があります。 。

1. 最も簡単な方法は、php5.1 以降を使用しないことです。
2. php.ini を変更せずに php5.1 以降を使用したい場合は、time に関する初期化ステートメントに date_default_timezone_set (XXX) を追加する必要があります。 ) または date('Y-m-d G:i:T', strtotime('+8HOUR') ) を使用して日付と時刻を取得します。
3 変更できるのは php.ini のみです。 php.ini を開き、date.timezone の前のセミコロンを削除し、= の後に XXX を追加して、http サービス (apache2 や iis など) を再起動します。
XXX について、中国本土で利用可能な値は次のとおりです: アジア/重慶、アジア/上海、アジア/ウルムチ (重慶、上海、ウルムチの順)、香港と台湾で利用可能な値: アジア/マカ* 、アジア/香港、アジア/台北 (マカオ、香港、台北)、およびシンガポール: アジア/シンガポールは上にありませんが、下を見ると、他の使用可能な値は次のとおりです: Etc/GMT-8、シンガポール、香港、中華人民共和国。中国とは何ですか? PRCは中華人民共和国です! (これは北京時間ですよね?) 上記は、公式 php ドキュメントから編集された GMT-8 以降の領域です。必要に応じて、公式ドキュメントで確認することをお勧めします:)

今日PHP5でdate("H:i:s")を使ったところ、引数「H」で取り出した時刻がウィンドウ下の時刻と間違っていることが分かりました。情報を確認したところ、PHP5 の php.ini のデフォルト設定は、

[Date]

; 日付関数で使用されるデフォルトのタイムゾーンを定義します

; date.timezone =

このように、デフォルトの時刻ははGMT時間になります。通常は北京時間を使用します。date.timezone = PRC または date.timezone = Asia/Shanghai に設定できます。つまり:

[Date]

; 日付関数で使用されるデフォルトのタイムゾーンを定義します

date.timezone = Asia/Shanghai

「Asia/Beijing」に設定しないように注意してください。外国人は上海に興味があるようです (笑)。

php.ini を変更する権限がない場合は、関数 date_default_timezone_set('PRC'); または date_default_timezone_set('Asia/Shanghai'); を使用できます

この関数は、すべてのデフォルトのタイムゾーンを設定するために使用されます。日付と時刻の関数。マニュアルには、「PHP 5.1.0 (このバージョンでは日付と時刻の関数が書き直されています) 以降、タイムゾーンが不正な場合、日付と時刻の関数を呼び出すたびに E_NOTICE レベルのエラー メッセージが生成されます。」と記載されています。ただし、「この関数は常に TRUE を返します (たとえ

ここで関数をもう一度学習してください: string

この関数の戻り値は次の順序に従います: 1: TZ 環境変数を使用します (空でない場合)。 3: date.timezone 設定オプション (設定されている場合)。 4: 独自の推測を行います (オペレーティング システムでサポートされている場合)。 5: 上記のオプションがいずれも成功しない場合は、

UTC についての詳細を確認してください:

協定世界時 (UTC) :

A 協定世界時と呼ばれる妥協の時間スケールは 1972 年に導入されました。協定世界時と世界時 (UT1) の差が 0.9 秒を超えないようにするために、協定世界時には正または負のうるう秒が追加されます。したがって、協定世界時と国際原子時 (TAI) の間には、整数秒の差が生じます。閏秒をいつ追加するかを決定するのは、パリの国際地球回転局 (IERS) です。協定世界時。 中文名前は協定世界時です。


GMT = グリニッジ標準時。中国語名はグリニッジ標準時です (ここでは「w」は省略されており、「Green」は「グレン」と発音されます)。 UTC = GMT + /- 0.9 秒
したがって、UTC は 2 つの差を制御するために時々「うるう秒」を実行する必要があります

php5.1x のタイムゾーンの問題により、8 時間の差が生じます。コレクション
php5.10 から、php にタイムゾーン設定が追加されました。これにより、中国のユーザーには 8 時間の時差が生じています。
関連する設定は、php.ini の date.timezone パラメーターを変更することです:
[Date]
; 日付関数で使用されるデフォルトのタイムゾーンを定義します
; date.timezone =

デフォルトではオフになっています。コメントして変更するだけです
[Date]
; 日付関数で使用されるデフォルトのタイムゾーンを定義します
date.timezone = PRC

PRC は「中華人民共和国」です!
その他のオプションについては、PHP マニュアルを参照してください。
しかし、上記のアジア地域は私たちの首都北京を恋しく思います、外国人が故意にそれをしたのではないかと思います!

php.ini を変更する権限がない場合は、時刻と日付の関数を呼び出すときに date_default_timezone_set('PRC') を呼び出すだけです。
date_default_timezone_get() を呼び出して、現在のタイムゾーン設定を表示することもできます。

XXX の場合、中国本土で使用可能な値は次のとおりです:
アジア/重慶、アジア/上海、アジア/ウルムチ (重慶、上海、台湾の順)
香港と台湾で使用可能な値: アジア/マカオ、アジア/香港、アジア/台北 (オーストラリア、香港、台北の順)
台湾地域は次のようになります: date.timezone = "Asia//Taipei"
シンガポールがあります: Asia/Singapore

この記事は、からのものですCSDN ブログ、転載する場合は出典を示してください: http://blog.csdn.net/keenx/archive/2006/03/21/631432.aspx

dedecms:php5 タイムゾーン設定から抜粋
if(PHP_VERSION > '5.1') {
$ time51 = 'Etc/GMT'.($cfg_cli_time > 0 ? '-' : '+').abs($cfg_cli_time);
function_exists('date_default_timezone_set') @date_default_timezone_set($time51) ) : '';
}

PHP バージョンが 5.1 より大きい場合は、
$cfg_cli_time = -8; を実行します。これは、フォーマット後に data_default_timezone_set ("Etc/GMT+8") を使用して設定します。
北京のタイムゾーンは Etc/GMT+8 である必要があります

タイムゾーン設定は通常 +8 時間に設定されます!
グリニッジ標準時 (GMT) です
$date = gmdate("Y-m-d H:i:s",time ()+8*3600)
条件を満たしていれば8ジャスト時間追加!関数か何かとして書いてください... ご自由に

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。