この記事では、特定の基準値を持つ PHP のデフォルトのタイムゾーンの変更を主に紹介します。必要な友達はそれを参照できるようにします。
オンライン通信と無線通信の両方で、各地域に独自の現地時間があります。 、時間変換の問題が特に顕著になります。地球全体は 24 のタイムゾーンに分割されており、それぞれに独自の現地時間が存在します。国際的な無線通信やネットワーク通信の場面では、統一のため、世界標準時(UTC)と呼ばれる世界標準時が定められた世界標準時が使用されます。 UTC はもともと、英国ロンドンの現地時間と同じグリニッジ標準時 (GMT、グリニッジ標準時) とも呼ばれていました。
PHP のデフォルトのタイムゾーン設定は UTC 時間であり、北京はタイムゾーンの東 8 区に位置し、UTC より 8 時間進んでいます。そのため、PHP の time() などの関数を使用して現在時刻を取得すると、取得される時刻は常に間違っており、北京時間とは 8 時間異なっています。北京時間を正しく表示したい場合は、デフォルトのタイムゾーン設定を変更する必要があります。これは次の 2 つの方法で行うことができます。
独立したサーバーを使用していて、設定ファイルを変更する権限がある場合は、php.ini の date.timezone 属性を変更することでタイムゾーンを設定できます。この属性の値を「Asia/Shang」、「Asia/Chongqing」、「Etc/GMT-8」、または PRC などのいずれかに設定すると、PHP スクリプトで取得される現在時刻が北京時間になります。 PHP 設定ファイルを次のように変更します。
date.timezone = Etc/GMT-8 //在配置文件中设置默认时区为东8区(北京时间)
共有サーバーを使用していて、設定ファイル php.ini を変更する権限がなく、PHP バージョンが 5.1.0 以降の場合は、date_default_timezone_set() を呼び出すこともできます。タイムゾーンを設定する前に機能を設定します。この関数は、パラメータとしてタイム ゾーン識別子を提供する必要があります。これは、構成ファイルの date.timezone 属性の値と同じです。この関数の使用方法は次のとおりです。
date_default_timezone_set('PRC'); //在输出时间之前设置时区,PRC为中华人民共和国 echo date('Y-m-d H:i:s', time()); //输出的当前时间为北京时间
getdate() 関数によって返される配列単位
キー名 | 説明 | 戻り値の例 |
時間s | 時間の数値表現 | 0〜23 |
mday | 月の日の数値表現 | 1〜31 |
minutes s | 分の値 | 0~59 |
mon | 月を表す数値 | 月の全文表現1月~12月 |
| 秒秒の数値表現 | 0~59 |
wday | 曜日の数値表現 | 0~6(0は日曜日を意味します) |
weekday | 曜日の全文表現 | Sunday〜Saturday |
yday | 年間の曜日の数値オフセット | 0 ~365 |
年 | 年の4桁表現 | 例: 1999 または 2009 |
0 |
| 開始からの秒数UNIX時代、time()の戻り値とdate()に使用される値は似ています |
-2147483648~2147483647です | 「10月」の場合1, 2009" is , 07:30:50 EDT" は UNIX タイムスタンプ 1254382250 に変換され、getdate() 関数に渡されます。各配列要素は次のように表示されます。 Array ( [seconds] => 50 //秒的数值表示 [minutes] => 30 //分钟的数值表示 [hours] => 7 //小时的数值表示 [mday] => 1 //月份中日的数值表示 [wday] => 4 //一周中日的数值表示 [mon] => 10 //月份的数值表示 [year] => 2009 //年份的4位表示 [yday] => 273 //一年中日的数值偏移 [weekday] => Thursday //一周中日的完整文本表示 [month] => October //月份的完整文本表示 [0] => 1254382250 //自从UNIX纪元开始至今的秒数 ) ログイン後にコピー |
関連する推奨事項: CentOS で php.ini を変更する方法が有効にならない |