最終更新日:
公開日:
レシピ
設定
php.iniで標準タイムゾーンを設定する
時間を扱う上で重要なタイムゾーン。世界には「時差」というものがありますが、システムにおいても「タイムゾーン」という地域によってそれぞれの時間帯が設定されています。今回はphp.iniでの確認&設定方法について解説します。
この記事のポイント
- PHPの既定のタイムゾーンを確認する
- php.iniからタイムゾーンの確認をする
- php.iniでタイムゾーンを設定する
目次
時間の取り扱いで重要なタイムゾーン
データが操作されたタイミングや、ログインが実行された時間、会員の有効期限など、システム開発において「時間」を正確に管理することは非常に重要です。
その前提として、地域によって異なる「タイムゾーン」も予め適切に設定されている必要があります。
例えば、日本で利用されるサービスでも、サーバーが海外に置かれているケースは結構多いです。
また、サーバー自体は日本で稼働していても、システムの標準設定でタイムゾーンが「協定世界時(UTC)」となっていることもよくあります。
そこで今回はタイムゾーンの設定を確認し、設定する方法を解説します。
php.iniまでのパスが分からない方は、「php.iniが置いてある場所の探し方」に書いてある方法で探してみてください。
また、サーバー事情などでphp.iniを編集することができない場合は、こちらの記事「タイムゾーンを取得 / 設定する」からコードレベルでの設定を行ってください。
PHPの既定のタイムゾーンを確認する
phpinfo関数でPHPの設定情報を出力すると、「date」項目に設定されている標準のタイムゾーンが出力されます。
index.php
<?php
phpinfo();
出力例
こちらでは「UTC」が設定されています。
UTCと日本では時差が「-9時間」あります。
例えば、日本で午前10時のとき、UTCでは午前1時ということになります。
php.iniからタイムゾーンの確認をする
php.iniから、タイムゾーンの設定を参照してみましょう。
php.iniをviなどのエディタで開き、「/date.」と検索してみてください。
[Date]の欄にある「;date.timezone =」がタイムゾーンの設定箇所です。
上図の例だと「;」で指定が無効化されているため、標準のUTCが設定されています。
php.iniでタイムゾーンを設定する
タイムゾーンを明示的に指定する場合は、上記「;date.timezone =」の後ろに具体的なタイムゾーンを指定します。
今回は日本時間なので「Asia/Tokyo」を指定します。
もしその他の地域を指定したい場合は、php.netに指定できる値の記載があります。
サポートされるタイムゾーンのリスト – php.net
php.iniの設定を保存したら、Apacheを再起動すると設定が反映されます。
再起動後に改めてphpinfo関数を実行し、タイムゾーンの設定を確認してみましょう。
「Default timezone」の値が「Asia/Tokyo」になっていることが確認できました。
これでdate関数やtime関数で時刻を取得すると、日本時間の時間を取得できるようになります。
以上、php.iniからのタイムゾーンの設定確認と設定方法でした。