Baccho Log

No Image

Sponsored Link

[PHP]指定した日時までをカウントダウンする

  • 投稿日:
  • 更新日:
Tags:
PHP
Categories:
プログラミング

タイムセールやイベント告知などで指定した日や時刻まで後どのくらい期間があるかを計算したい場合、DateTime クラスの diff() 関数を使うと簡単に得ることができます。
DateTime クラスは日時計算や整形出力に関するクラスです。下記サンプルの実行には PHP 5.3 以上が必要です。
2038年問題にも対応する関数なので今後必須になってくると思います。

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);

2018-02-01 追記
月を跨いで、残り「日」を取りたい場合、formatで指定する必要があります。

$diff->format('%a');

これで月を跨いでも残り「日」を取得することが出来ます。

ちなみに締め切りしたかどうかはinvertで取れます。

$datetime = new DateTime('2017/10/01 00:00:00');
$current  = new DateTime('now');
$diff     = $current->diff($datetime);

if ($diff->invert) {
    $dead_line = '締め切りました';
} else {
    $dead_line = $diff->d > 0 ? '締め切りまであと' . $diff->d . '日';
}

細かくカウントしなくちゃいけない場合も、この関数は使い勝手良く出来そうですね!

« [PHP]日付の比較[PHP]ある日から〇日後 / 〇日前を作成する »

Sponsored Link

コメントする

記事の感想や修正依頼等ありましたら、コメントをお願いいたします