タイムセールやイベント告知などで指定した日や時刻まで後どのくらい期間があるかを計算したい場合、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 などの日時を持ちます。
Similar Posts:
- [PHP]日付から曜日を割り出す
- [PHP]ディレクトリ内の一定時間が経過した古いファイルだけを削除する
- [PHP]次の土日(今週末)の日時を取得する
- [PHP]ある曜日に該当する日だけを表示する
- [PHP]HTMLフォームで検索条件を解除するリンクを作る
- [PHP]JSON+cURLで時刻同期型ワンタイムパスワードによる認証
- [JS]アニメーション付きで要素の上下を入れ替える
- [PHP]ある曜日の第n週は何日か調べる(国民の祝日)