date_default_timezone_set関数を使用すると、さまざまな地域のタイムゾーンを指定することができます。
この記事では、
・date_default_timezone_setとは
・date_default_timezone_setの使い方
という基本的な内容から、
・デフォルトのタイムゾーンを取得する
・タイムゾーンのエラーの対処法
・設定したタイムゾーンを確認する方法
などの応用的な使い方に関しても解説していきます。
今回はそんなdate関数について、わかりやすく解説します!
date_default_timezone_setとは
date_default_timezone_set関数は、スクリプト中で日付や時刻関数で使用するデフォルトのタイムゾーンを設定するための関数です。
date_default_timezone_set関数は、引数に文字列で指定した地域のタイムゾーンを設定し、実行結果としてboolean型の値を返します。
date_default_timezone_set( 'タイムゾーン' )
タイムゾーンの設定については、以下の記事でも詳しく解説しています。
date_default_timezone_setの使い方
以下にdate_default_timezone_set関数を使用した、タイムゾーンの設定方法を記述します。
<?php //タイムゾーンを日本の時間に設定 date_default_timezone_set('Asia/Tokyo'); echo date('Y年m月d日H時i分s秒'); echo '<br>'; //タイムゾーンをアメリカの時間に設定 date_default_timezone_set('America/Los_Angeles'); echo date('Y年m月d日H時i分s秒'); echo '<br>'; //タイムゾーンをインド洋のコモロ諸島の時間に設定 date_default_timezone_set('Indian/Comoro'); echo date('Y年m月d日H時i分s秒'); ?>
実行結果 2017年04月17日16時11分53秒 2017年04月17日00時11分53秒 2017年04月17日10時11分53秒
PHPでサポートしているタイムゾーンについては、以下のページに詳細が記載されています。
http://php.net/manual/en/timezones.php
デフォルトのタイムゾーンを取得する
デフォルトで設定されているタイムゾーンを取得するためには、date_default_timezone_get関数を使用します。
date_default_timezone_get関数は、以下のように記述すれば、簡単に現在のタイムゾーンを取得できます。
echo date_default_timezone_get();
実行結果 “Asia/Tokyo”
タイムゾーンのエラーについて
PHP5.1.0からデフォルトのタイムゾーンを設定する必要があります。
もし、PHPのログファイルにタイムゾーン関連のエラーが発生していた場合は、タイムゾーンが正しく設定されていない可能性があります。
タイムゾーンは、PHPの環境設定ファイルであるphp.iniで設定するか、紹介したdate_default_timezone_set関数で設定する必要があります。
date_default_timezone_set関数は、php.iniで都度タイムゾーンの設定を変更する必要がなく、ソースコードに記述できますので手軽に設定できるというメリットがあります。
設定したタイムゾーンを確認する方法
設定したタイムゾーンを確認するためには、先述したdate_default_timezone_get関数以外にini_get関数と、phpinfo関数を使用する方法があります。
ini_get関数は引数に‘date.timezone’を指定すれば、php.iniで設定したタイムゾーンを取得することができます。
echo ini_get('date.timezone’);
実行結果 “Asia/Tokyo”
phpinfo関数を使用すれば、ブラウザのページから現在のPHPのさまざまな設定情報を確認することができます。
phpinfo関数は以下のように記述します。
phpinfo();
phpinfo画面が表示されたら、「date.timezone」を確認すると、現在設定されているタイムゾーンが確認できます。
まとめ
ここではdate_default_timezone_set関数を使用して、タイムゾーンの設定方法やエラーの対処法、設定の確認方法について解説しました。
タイムゾーンなどの時刻を扱う処理は、実際の開発でもよく扱いますので、この機会にぜひ覚えておきましょう。
もし、date_default_timezone_set関数の使用方法を忘れてしまったら、この記事を思い出してくださいね!