Php 过期日期计算
我在网站上找到了下面的代码来计算截止日期。此函数似乎在实际日期起作用,并根据$months为我提供到期日期。我如何使用该函数,而不是基于我定义的日期。也就是说,如果我输入$myday=2013-01-01,我希望函数告诉我每月到期(当然,如果我选择每月),以及与今天的日期相比到期的天数。例如,如果我们是2015年1月31日,我启动了该功能,它应该告诉我到期日在1天之内,因为每个月都是到期日Php 过期日期计算,php,date,Php,Date,我在网站上找到了下面的代码来计算截止日期。此函数似乎在实际日期起作用,并根据$months为我提供到期日期。我如何使用该函数,而不是基于我定义的日期。也就是说,如果我输入$myday=2013-01-01,我希望函数告诉我每月到期(当然,如果我选择每月),以及与今天的日期相比到期的天数。例如,如果我们是2015年1月31日,我启动了该功能,它应该告诉我到期日在1天之内,因为每个月都是到期日 function calculate_postpone_due_date($billingcycle) {
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);
}
尝试发送函数中的日期,然后它将工作看看下面的代码希望有用
function calculate_postpone_due_date($billingcycle,$date)
{
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;
$next_due_date = strtotime($today.' + '.$months.' Months');
return date('Y-m-d', $next_due_date);
}
echo calculate_postpone_due_date($billingcycle,'your date')
添加了新参数
$date
。如果您传递$date
param,它将在今天到达
function calculate_postpone_due_date($billingcycle, $date = false)
{
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;
$current = $date ? date('Y-m-d', strtotime($date)) : date('Y-m-d');
$next_due_date = strtotime($current.' + '.$months.' Months');
return date('Y-m-d', $next_due_date);
}
echo calculate_postpone_due_date("Quarterly", "2013-01-01");
2013-01-01年度产量
向函数中添加一个日期参数,然后将传递给strotime的日期替换为今天的日期。这是类的一部分吗?如果是这样的话,它的名字是什么?你想让函数返回字符串“Monthly”和整数1,我读对了吗?实际上,这并不是我需要的。假设我每个月都有一笔付款,这是从2001-01-01开始的。所以从那天起每个月我都有一笔定期付款。但当我在2013-09-04时,下一个复发日期应该是2013-10-10。那么,如何把它作为答案呢?事实上,这并不是我真正需要的。假设我每个月都有一笔付款,这是从2001-01-01开始的。所以从那天起每个月我都有一笔定期付款。但当我在2013-09-04时,下一个复发日期应该是2013-10-10。那么如何将其作为答案呢?@seby
计算延迟到期日(“每月”、“2013-09-04”)代码>结果是2013-10-04
。我不能确切地理解你想要什么。您能给我举个更详细的例子吗?您好,先生,假设您从2001-01-01有一笔100美元的定期付款。从那天起每个月我都需要一种提醒。所以答案是从今天开始,下一个付款日期是什么时候。下个月的第一天。我不知道我是否更清楚?@seby让我们说:2001-01-01
是第一个付款日。下个月2001-02-01
?我知道你只有像2001-01-01这样的第一次约会。您的问题是如何在12年后获得此账单日期;)代码>?对吗?您可以更新2001-01-01创建的付款行,更新的2001-02-01
。每个月,您都可以获得更新的列,然后使用更新的列运行该函数。您的意思是,每次运行该函数时,我都会使用新日期更新该列?但该功能不必在正确的日期运行。我该怎么办?事实上,这不是我真正需要的。假设我每个月都有一笔付款,这是从2001-01-01开始的。所以从那天起每个月我都有一笔定期付款。但当我在2013-09-04时,下一个复发日期应该是2013-10-10。那么,如何将其作为答案呢?
2013-04-01