期日を計算するために、サイトで以下のコードを見つけました。この関数は実際の日に機能しているようで、$months に基づいて期日を教えてくれます。どうすればその関数を使用できますが、代わりに定義した日付に基づいています。つまり、$myday = 2013-01-01 と入力すると、毎月の期日 (もちろん月単位を選択した場合) と、TODAY の日付と比較して期日が何日後かを関数に通知する必要があります。たとえば、2015 年 1 月 31 日に関数を起動すると、毎月の期日であるため、期日は 1 日であることがわかります。
function calculate_postpone_due_date($billingcycle) {
switch ($billingcycle) {
case "Monthly":
$months = 1;
break;
case "Quarterly":
$months = 3;
break;
case "Semi-Annually":
$months = 6;
break;
case "Annually":
$months = 12;
break;
case "Biennially":
$months = 24;
break;
case "Triennially":
$months = 36;
break;
default:
$months = 0;
break;
}
if ($months == 0) {
return false;
}
$today = date('Y-m-d');
$next_due_date = strtotime($today . ' + ' . $months . ' Months');
return date('Y-m-d', $next_due_date);
}