, <起点となるエポックスタンプ>,); ・第1引数<期間>は数値で指定。第3引数と合わせて、1日後、1週間後、1ヵ月後…などの単位に。(0-∞) ・第2引数<起点となるエポックスタンプ>はエポックスタンプをそのまま指定。(1970-2038までのエポックスタンプ) ・第3引数はdayで○日後、weekで○週間後、monthで○ヵ月後。day,week,monthで指定。(day,week,month) ・第3引数が不適当な場合は、起点のエポックスタンプをそのまま返す。 【○日後の計算】 ・○日後は起点日より4日後など自由に設定(1以上の数値で設定。0の場合は起点のエポックスタンプをそのまま返す。) ・1日は24時間とする。 ・例えば9月5日から3日後は、9月8日 23:59,59とする。翌日9月9日 0:00,00から4日目という計算になる。 ・(なんか一日多い計算になるのかもしれないけど、直感的にこんな風に皆思うのでは?) 【○週間後の計算】 ・○週間後は4週間後など自由に設定(1以上の数値で設定。0の場合は起点のエポックスタンプをそのまま返す。) ・1週は7日間とする。 ・例えば9月5日から2週間後は、9月18日 23:59,59とする。翌日9月19日 0:00,00から3週間目という計算になる。 ・(表現としては起点から2週間とか16週間まで…というようなニュアンスになるのかな?) 【○ヵ月後の計算】 ・○ヵ月後は24ヵ月後など自由に設定(1以上の数値で設定。0の場合は起点のエポックスタンプをそのまま返す。) ・1月の期間は暦上の1月とし2月は28日間、乃至29日間で一月と計算する。 ・例えば9月5日から2ヶ月後は、11月4日 23:59,59とする。翌日11月5日 0:00,00から2月目という計算になる。 ・(表現としては起点から2ヶ月間とか16ヵ月間まで…というようなニュアンスになるのかな?) 【○年後の計算】 ・○年後は5年後など自由に設定(1以上の数値で設定。0の場合は起点のエポックスタンプをそのまま返す。) ・1年の期間は暦上の364日乃至365日間で計算する。 ・例えば2010年9月5日から2年後は、翌々年2012年9月4日 23:59,59とする。2012年9月5日 0:00,00から3年目という計算になる。 ・(1年間という感じ。起点の日時を過ぎたら次の年に入るという感じです。) */ if ($term == 'month') { if ($after_value != 0) { $get_date = array(); $get_date = getdate($start_epock); $get_date['mon'] = $get_date['mon'] + $after_value; $get_date['mday'] = $get_date['mday'] - 1; $result_epock = mktime(23,59,59,$get_date['mon'],$get_date['mday'],$get_date['year']); } elseif ($after_value == 0) { $result_epock = $start_epock; } } elseif ($term == 'week') { if ($after_value != 0) { $get_date = array(); $get_date = getdate($start_epock); $after_week = ($after_value*7)-1; $get_date['mday'] = $get_date['mday'] + $after_week; $result_epock = mktime(23,59,59,$get_date['mon'],$get_date['mday'],$get_date['year']); } elseif ($after_value == 0) { $result_epock = $start_epock; } } elseif ($term == 'day') { if ($after_value != 0) { $get_date = array(); $get_date = getdate($start_epock); $get_date['mday'] = $get_date['mday'] + $after_value; $result_epock = mktime(23,59,59,$get_date['mon'],$get_date['mday'],$get_date['year']); } elseif ($after_value == 0) { $result_epock = $start_epock; } } elseif ($term == 'year') { if ($after_value != 0) { $get_date = array(); $get_date = getdate($start_epock); $get_date['year'] = $get_date['year'] + $after_value; $get_date['mday'] = $get_date['mday'] -1; $result_epock = mktime(23,59,59,$get_date['mon'],$get_date['mday'],$get_date['year']); } elseif ($after_value == 0) { $result_epock = $start_epock; } } else { $result_epock = $start_epock; } #--------------- # デバックモード #--------------- /* $start_date = date('Y.m.d A H:i.s',$start_epock); $result_date = date('Y.m.d A H:i.s',$result_epock); $debug_mode_ex = <<< EOM
項目内容
起点となるエポックスタンプ$start_epock
起点となる日付$start_date
○$term after$after_value $term after
$after_value $term afterのエポックスタンプ$result_epock
$after_value $term afterの日付$result_date
EOM; print $debug_mode_ex;*/ #-------- # 返り値 #-------- return $result_epock; } ?> x(日/週/月/年)後の計算
○日後、○週間後、○ヵ月後、○年後を算出する
 年  月  日から  
"; print "".$_POST['after_value'].$ex_term."は、\n"; print "".$get_date."($re_wday_jp)"."\n"; print "
"; } ?>