Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 过期日期计算_Php_Date - Fatal编程技术网

Php 过期日期计算

Php 过期日期计算,php,date,Php,Date,我在网站上找到了下面的代码来计算截止日期。此函数似乎在实际日期起作用,并根据$months为我提供到期日期。我如何使用该函数,而不是基于我定义的日期。也就是说,如果我输入$myday=2013-01-01,我希望函数告诉我每月到期(当然,如果我选择每月),以及与今天的日期相比到期的天数。例如,如果我们是2015年1月31日,我启动了该功能,它应该告诉我到期日在1天之内,因为每个月都是到期日 function calculate_postpone_due_date($billingcycle) {

我在网站上找到了下面的代码来计算截止日期。此函数似乎在实际日期起作用,并根据$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);
}

尝试发送函数中的日期,然后它将工作看看下面的代码希望有用

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