phpで二つの日付が何日間離れているか調べる。
今回は関数にして二つの日付を渡し、日数を返すように作成。
※UNIXタイムスタンプは、「1970-01-01 00:00:00」からの経過秒数。
※日数に変換する際は、60(秒)×60(分)×24(時)で割ることで日数を求めている
■ 使用方法
<?php function day_diff($date1, $date2) { // 日付をUNIXタイムスタンプに変換 $timestamp1 = strtotime($date1); $timestamp2 = strtotime($date2); // 何秒離れているかを計算 $seconddiff = abs($timestamp2 - $timestamp1); // 日数に変換 $daydiff = $seconddiff / (60 * 60 * 24); // 戻り値 return $daydiff; } // 日付を関数に渡す $day = day_diff('2012-10-10', '2012-12-24'); echo $day; ?>
■ 出力結果
75
2つの日付の差を計算してみたのですが、2038年以降の値が負になってしまうのですが、これを解決する方法はないでしょうか。ご存じでしたら教えてください。
コメントありがとうございます。
返信が遅くなってしまいました。
日付関数などでは2038年問題があり、2038年頃から誤動作する可能性があります。
解決する方法として、date_create関数を使用すれば正常に動作することを確認しました。
http://jp.php.net/manual/ja/function.date-create.php