【发布时间】:2013-09-04 10:16:29
【问题描述】:
我在网站上找到了以下代码来计算到期日。此功能似乎在实际日期工作,并根据 $months 为我提供截止日期。我如何使用该功能,但要基于我定义的日期。所以意思是,如果我输入 $myday = 2013-01-01,我希望函数告诉我它是每个月到期的(如果我当然选择每月)以及与今天日期相比它的到期天数。因此,例如,如果我们是 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);
}
【问题讨论】:
-
在函数中添加一个日期参数,然后将传递给
strtotime的日期替换为该参数。 -
这是课程的一部分吗?如果有,它叫什么名字?
-
所以你希望函数返回字符串“Monthly”和整数 1,我读对了吗?
-
实际上,这并不是我真正需要的。假设我每个月都有一笔付款,这发生在 2001 年 1 月 1 日。所以从那个日期起每个月我都有一笔定期付款。但是当我在 2013-09-04 时,下一个重复日期应该是 2013-10-10。那么如何将其作为答案呢?