• 締切済み

日付の計算できる関数は無いですか?

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

みんなの回答

  • riyop
  • ベストアンサー率41% (7/17)
回答No.4

// 日数の差を返す関数 // $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; }

  • maro
  • ベストアンサー率47% (95/199)
回答No.3

日付から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;

  • yumityan
  • ベストアンサー率60% (132/220)
回答No.2

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

  • shunet
  • ベストアンサー率28% (15/52)
回答No.1

time関数でやれば、秒数で計算できます。 1970年の1月1日を0としていますので 今の時間をtimeで取得して、あとは86400秒(1日) を利用して、割って、あまりを処理して・・・ 秒に変換してから、やればいいとおもいます。

関連するQ&A