誕生日や記念日などの毎年訪れる定期日までの残日数をカウントするためのPHPスクリプトを作ってみました。
下記のスクリプトは、例として、年度末(3月31日)までの日数を計算するように設定しています。必要に応じて、最初の、3、31の部分を変更してください。
<?php
$tuki = 3 ;
$niti = 31;
$one_day = 60 * 60 * 24;
$this_y = date(Y);
$t1 = time();
$t2 = mktime(0, 0, 0, $tuki, $niti, $this_y);
if ($t1 < $t2) {
$remain_day = ceil (($t2 - $t1) / $one_day);
echo ($remain_day);
} else {
$next_y = ++$this_y ;
$t3 = mktime(0, 0, 0, $tuki, $niti, $next_y);
$remain_day = ceil (($t3 - $t1) / $one_day);
$tukihi1 = date ('Ymd', $t1) ;
$tukihi2 = date ('Ymd', $t2) ;
$remain_day = ($tukihi1 != $tukihi2) ? $remain_day : 0;
echo ($remain_day);
}
?>
PHPを知らない人のためにコメントを付けておきます。
<?php $tuki = 3 ; //設定したい月 $niti = 31; //設定したい日 $one_day = 60 * 60 * 24; //1日の秒数 $this_y = date(Y); //現在の年 $t1 = time(); //現在のタイムスタンプ $t2 = mktime(0, 0, 0, $tuki, $niti, $this_y); //目標日のタイムスタンプ if ($t1 < $t2) { //目標日の月日が今日より後の場合 //タイムスタンプの差を日付に直し、切り上げて残日数を計算 $remain_day = ceil (($t2 - $t1) / $one_day); echo ($remain_day); //出力 } else { //目標日の月日が今日より前の場合(当日含む) $next_y = ++$this_y ; //来年の年 $t3 = mktime(0, 0, 0, $tuki, $niti, $next_y); //来年の目標日のタイムスタンプ //タイムスタンプの差を日付に直し、切り上げて残日数を計算 $remain_day = ceil (($t3 - $t1) / $one_day); //当日に365と表示されるのを0にする処理 //当日に365と表示されてもよいなら下3行は不要 $tukihi1 = date ('Ymd', $t1) ; //現在の月日 $tukihi2 = date ('Ymd', $t2) ; //目標日の月日 //カウントダウン当日:現在の月日と目標日の月日が同じなら0を代入 $remain_day = ($tukihi1 != $tukihi2) ? $remain_day : 0; echo ($remain_day); //出力 } ?>
一応こんな感じです。間違いや不具合があるかもしれないので、ご利用は自己責任でお願いします。当ブログでは一切責任を負いません。間違いを見つけられた場合、コメントでご指摘くださるとありがたいです。
<参考にしたブログ>
フロッグさんの日記
http://d.hatena.ne.jp/frogfrogfrog/20091111
わかりやすくてとても助かりました。