【PHP入門】date_default_timezone_setの使い方

こんにちは!フリーエンジニアのヤマシタです。

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関数の使用方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。