タイムセールやイベント告知などで指定した日や時刻まで後どのくらい期間があるかを計算したい場合、DateTime クラスの diff() 関数を使うと簡単に得ることができます。
DateTime クラスは日時計算や整形出力に関するクラスです。下記サンプルの実行には PHP 5.3 以上が必要です。
2038年問題にも対応する関数なので今後必須になってくると思います。
<?php date_default_timezone_set("Asia/Tokyo"); $datetime = new DateTime('2030/01/01 00:00:00'); $current = new DateTime('now'); $diff = $current->diff($datetime); printf('残り %d年%dヶ月%d日 %d時間%d分%d秒(%d日)', $diff->y, $diff->m, $diff->d, $diff->h,$diff->i,$diff->s, $diff->days);
実行結果: 残り 15年8ヶ月13日 9時間49分8秒(5736日)
DateTime クラスをインスタンス化する際に、日時を引数として渡します。省略した場合は現在の日時が入ります。(デフォルトは「now」)
diff() はオブジェクトを返し、プロパティとして y や h などの日時を持ちます。