MOREphpで日付を扱う時の関数やクラス2015.02.28プログラマの新里と申します。今回はphpに存在する日付に関する関数やクラスを紹介してみようと思います。time()]);date()は、指定したフォーマットで日付を文字列出力してくれます。タイムゾーンを設定して、フォーマットを与えるとそのフォーマットの内容で現在時間を返してくれます。日本のタイムゾーンを設定。この様なフォーマットで値が返されます。date()の第2引数にオプションとしてデフォルトでtime()が設定してあります。time()は現在時間のタイムスタンプを返すので、現在時間が表示されるという訳です。オプションに任意のタイムスタンプを設定することで、その値でフォーマット通りの日時を返す事が出来ます。タイムスタンプは1970/1/1/00:00:00からの通算秒の事で、この値を直接入れるのは大変です。任意に指定したタイムスタンプを取得するにはstrtotime()を使用します。time()]);strtotime()は文字列で与えられた書式をパースし、現在時間からパースした結果の分だけ日時を経過させたタイムスタンプを返します。第2引数には任意のタイムスタンプを引数に与える事で、第2引数のタイムスタンプの日時から、第1引数分経過させた値を返す事も可能です。is_dst);このような関数もあります、指定した値のタイムスタンプを取得出来ます。引数は右から省略可能となり省略すると現在時間の値が入ります。is_dstとはサマータイムかどうかのフラグになります。海外ではサマータイムと呼ばれる時間が存在し、通常の時間を1時間進めてしまうというものです。日本でもサマータイムを実施した事があるそうです。00:00:00基本的にはdate()とstrtotime()で事が済みます。フォーマットの引数は文字列なので、変数と組み合わせる事も出来たりと便利ですね。値だけ経過させた日時を取得。phpには、日時と時刻を表すクラスも存在します。・DateTimeクラス初期化する際に、引数に有効な書式の文字列を渡すとその値で日時で初期化され、省略すると現在のタイムゾーンでの現在時間で初期化されます。0);date()やstrtotime()には無い機能として、初期化時のフォーマットに独自のものを利用出来ます。文字列を組み合わせたい場合等に便利ですね。01時40分00秒’);DateTimeクラスから日時を出力する場合はformat()を呼びます。01:40:00));strtotime()で使用した様な書式による日時取得もmodify()を使用する事で取得出来ます。days’));・DateTimeImmutableクラスクラスの挙動としてはDateTimeクラスと同じです。値を返す際には自分自身は更新せず新しいDateTimeオブジェクトを返すという挙動を取ります。設定値が変更されませんので、固定時間からの差分取得したいという時に便利です。DateTimeは自分自身の値を更新し、自身の参照を渡すので使い分けには注意が必要ですね。初期化すればDateTimeクラスは各関数を呼び出す度に参照を返すので、その参照からまた関数を立て続けに呼びせばコードが複数行になってしまうなんて事も無さそうです。クラスである事が扱いやすく分かりすいと考える場合は、DateTimeクラスやDateTimeImmutableクラスを利用するのも良いですね。最後に、タイムスタンプを利用する場合には2038年問題というものが存在します。32bitシステム上ではタイムスタンプが扱えるのは2038年までというものです。2038年を超えると1970年に戻ってしまう訳です。64bitシステム上であれば、過去未来2930億年まで対応できます。スゴイ採用情報クラウドクリエイティブスタジオではプログラマを募集中でございます。ご興味があれば、以下のリンクをご覧くださいませ。