プロが教えるわが家の防犯対策術!

カレンダーの日付を参照して、
昨日の日付(2001-12-06)を今日の日付(2001-12-07)
から見て何日前の日付であるかを確認できるような関数
はありませんか?この場合(-1)と返してくれるような。

私、PHPに関しましては素人なもので・・・
よろしくお願いいたします。

A 回答 (4件)

time関数でやれば、秒数で計算できます。


1970年の1月1日を0としていますので
今の時間をtimeで取得して、あとは86400秒(1日)
を利用して、割って、あまりを処理して・・・

秒に変換してから、やればいいとおもいます。
    • good
    • 0

おはようございます。


excelのToday関数を使って計算できます。
計算したい日付を入力 例えば 2000/12/5
今日の日付は関数(fx)から日付時間を選びその中のtodayを選択
両方のセルを引き算する
セルの書式設定を数値にすると何日前と結果が得られますよ。
    • good
    • 0

日付からUNIX時間を割り出し、日付の間隔(秒数)から日数を計算すれば簡単にできます。



//日付を区切り文字で配列化
$date1 = explode("-","2001-12-07");
$date2 = explode("-","2001-12-06");

//日付からUNIX時間を割り出す
$date1_time = mktime(0,0,0,date1[1],date1[2],date1[0]);
$date2_time = mktime(0,0,0,date2[1],date2[2],date2[0]);

//期間を計算し、秒数を日数に変換
$term = ($date1 - $date2) / 3600 / 24;
    • good
    • 0

// 日数の差を返す関数


// $d1,$d2は日付(YYYY-MM-DD)
function date_diff($a1,$a2) {
$d1 = split("-",$a1);
$d2 = split("-",$a2);
if(checkdate($d1[1],$d1[2],$d1[0])){return -1;}
if(checkdate($d2[1],$d2[2],$d2[0])){return -1;}
$ret = (mktime(0,0,0,$d1[1],$d1[2],$d1[0]) - mktime(0,0,0,$d2[1],$d2[2],$d2[0])) / 86400;
return $ret;
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!