DateTimeクラスの練習として作成したPHPスクリプト↓
$my_next_birthday = '2013/05/11';//次の誕生日 $today = new DateTime(); $birthday = new DateTime($my_next_birthday); $interval = $today->diff($birthday, true); echo $interval->format('あなたの誕生日は%mヶ月と%d日後です。');
<解説>
DateTimeクラスには日付・時刻の操作に関するメソッドが詰まっている。日付の整形くらいならdate関数でもいいけど、DateTimeを使えば差分を一発でとったり加算・減算をしたりといった処理を手軽に行うことができる(まあ、strtotime関数を使った処理でも大した手間ではないけど…)。
DateTime::diffメソッドの作りは以下。
DateInterval DateTime::diff(DateTime $dt [, bool $absolute = FALSE])
第一引数は日付・時刻形式のデータ。オプションの第二引数は戻り値を絶対値で返すかを設定(デフォルトはFALSE)。
戻り値はDateIntervalオブジェクト。DateIntervalオブジェクトは日付・時刻の差分を表すオブジェクトで、メソッドはコンストラクターを除くと、DateInterval::createFromDateStringとDateInterval::formatの2つだけ。ここでは、formatを使っている。