タイムゾーンの取得と変更

タイムゾーンとは同じ標準時刻を使用する地域や区分を指します。date_default_timezone_get関数でタイムゾーンを取得して表示します。

<?php
echo date_default_timezone_get();
echo date("Y-m-d H:i:s");
?>

実行結果は以下の通りです。

UTC
2022-01-14 02:17:33

UTCは協定世界時です。UTCと日本では時差が9時間あり、例えばUTCで午前2時の時、日本では午前11時になります。

タイムゾーンをプログラム上で一時的に変更する場合はdate_default_timezone_set関数を使用します。タイムゾーンを「Asia/Tokyo」に変更します。

<?php
date_default_timezone_set('Asia/Tokyo');
echo date_default_timezone_get();
echo date("Y-m-d H:i:s");
?>

実行結果は以下の通りです。9時間の時差が解消されました。

Asia/Tokyo
2022-01-14 11:17:33

タイムゾーンを恒久的に変更したい場合はphp.iniの設定を変更します。デフォルトでは以下のようにコメントアウトされており、初期値のUTCが適用されています。

//php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

コメントアウトを外して以下のように書き換えます。これでタイムゾーンが「Asia/Tokyo」に変更されます。

//php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"

phpinfo関数で表示すると、php.iniファイルの場所は「Loaded Configuration File」、タイムゾーンは「Default timezone」の項目に記載されています。

なお、php.iniを編集したら設定を反映するために、WEBサーバーを再起動する必要があります。

タイトルとURLをコピーしました