PHPプログラミング

レシピ

設定

php.iniで標準タイムゾーンを設定する

時間を扱う上で重要なタイムゾーン。世界には「時差」というものがありますが、システムにおいても「タイムゾーン」という地域によってそれぞれの時間帯が設定されています。今回はphp.iniでの確認&設定方法について解説します。

この記事のポイント

  • PHPの既定のタイムゾーンを確認する
  • php.iniからタイムゾーンの確認をする
  • php.iniでタイムゾーンを設定する

目次

時間の取り扱いで重要なタイムゾーン

データが操作されたタイミングや、ログインが実行された時間、会員の有効期限など、システム開発において「時間」を正確に管理することは非常に重要です。
その前提として、地域によって異なる「タイムゾーン」も予め適切に設定されている必要があります。

例えば、日本で利用されるサービスでも、サーバーが海外に置かれているケースは結構多いです。
また、サーバー自体は日本で稼働していても、システムの標準設定でタイムゾーンが「協定世界時(UTC)」となっていることもよくあります。
そこで今回はタイムゾーンの設定を確認し、設定する方法を解説します。

php.iniまでのパスが分からない方は、「php.iniが置いてある場所の探し方」に書いてある方法で探してみてください。

また、サーバー事情などでphp.iniを編集することができない場合は、こちらの記事「タイムゾーンを取得 / 設定する」からコードレベルでの設定を行ってください。

PHPの既定のタイムゾーンを確認する

phpinfo関数でPHPの設定情報を出力すると、「date」項目に設定されている標準のタイムゾーンが出力されます。

index.php

<?php
phpinfo();

出力例

phpinfo関数の出力例

こちらでは「UTC」が設定されています。

UTCと日本では時差が「-9時間」あります。
例えば、日本で午前10時のとき、UTCでは午前1時ということになります。

php.iniからタイムゾーンの確認をする

php.iniから、タイムゾーンの設定を参照してみましょう。
php.iniをviなどのエディタで開き、「/date.」と検索してみてください。

[Date]の欄にある「;date.timezone =」がタイムゾーンの設定箇所です。

php.iniの設定例

上図の例だと「;」で指定が無効化されているため、標準のUTCが設定されています。

php.iniでタイムゾーンを設定する

タイムゾーンを明示的に指定する場合は、上記「;date.timezone =」の後ろに具体的なタイムゾーンを指定します。
今回は日本時間なので「Asia/Tokyo」を指定します。

もしその他の地域を指定したい場合は、php.netに指定できる値の記載があります。
サポートされるタイムゾーンのリスト – php.net

php.iniの設定を保存したら、Apacheを再起動すると設定が反映されます。

再起動後に改めてphpinfo関数を実行し、タイムゾーンの設定を確認してみましょう。

標準タイムゾーンが日本時間になった

Default timezone」の値が「Asia/Tokyo」になっていることが確認できました。
これでdate関数time関数で時刻を取得すると、日本時間の時間を取得できるようになります。

以上、php.iniからのタイムゾーンの設定確認と設定方法でした。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

ありがとうございます。
コメントを送信しました。