PHPで2つの日付間の日数を表示する方法についてまとめました。
実際にサイトを作っていて日数を計算する場合、色々なパターンが想定されます。

例えば、
・○年○ヶ月○日と表示したい場合
・○ヶ月○日と表示したい場合
・○日と表示したい場合
等です。

まずは各パターン共通の差を計算する部分です。
PHPの場合、タイムスタンプ型で計算します。


$date = "2000/09/01";

//対象日と今日の日付をそれぞれ配列に格納
$dateArray = split("/", $date);
$todayArray = array( date("Y"), date("m"), date("d") );

//日付を計算用にタイムスタンプへ変換
$dateTime = mktime(0,0,0,$dateArray[1] , $dateArray[2] , $dateArray[0]);
$todayTime = mktime(0,0,0,$todayArray[1], $todayArray[2], $todayArray[0]);

//2つの日付間の差(ミリ秒)を計算
$diffTime = $todayTime - $dateTime;

つづいて、各パターンの表示方法を記載いたします。


//○年○ヶ月○日と表示したい場合
$diffYMD = (date("Y",$diffTime ) - 1970) . "年" . (date("m",$diffTime ) - 1) . "ヶ月" . (date("d",$diffTime ) - 1) . "日";


//○ヶ月○日と表示したい場合
$diffMD = ((date("Y",$diffTime ) - 1970)*12) + (date("m",$diffTime ) - 1) . "ヶ月" . (date("d",$diffTime ) - 1) . "日";


//○日と表示したい場合
$diffD = $diffTime /(60*60*24) . "日";

以上です。




ランキング参加中です。よろしければ投票してください。
にほんブログ村 IT技術ブログへ ブログランキング