PHPの日時関数(date)は、ローカルの日時を取得する。ローカルとは、サーバーに設定されているタイムゾーンのこと。たとえば、もしアメリカに設置されているサーバーで実行するコード中で日本時間を取得したければどうするか。
PHPにはスクリプト中で使われるデフォルトタイムゾーンを設定する関数(date_default_timezone_set)がある。この関数を使って希望するタイムゾーンを設定した後に日付を取得すればよい。
もしスクリプト内で別のタイムゾーンの日時を必要とする箇所があるならば、必要なときだけタイムゾーンを変更し、必要無くなったら元のタイムゾーンに戻しておくなどの配慮をしておくべきだろう。
1 2 3 4 5 6 7 8 9 10 11 12 |
// 現在設定されているタイムゾーンを退避 $tz = date_default_timezone_get(); // 希望するタイムゾーンを設定 date_default_timezone_set('Asia/Tokyo'); // 日付取得 $timeStr = date("Y-m-d H:i:s", time()); echo "Current time = {$timeStr}"; // 元のタイムゾーンに戻す date_default_timezone_set($tz); |
参考サイト
PHP: date_default_timezone_get – Manual
http://php.net/manual/ja/function.date-default-timezone-get.php
PHP: date_default_timezone_set – Manual
http://php.net/manual/ja/function.date-default-timezone-set.php
PHP: サポートされるタイムゾーンのリスト – Manual
http://php.net/manual/ja/timezones.php