0

私はこれを持っていますPHP function

function calculateNextDate($startDate, $days)
{
    $dateTime = new DateTime($startDate);

        while($days) {
            $dateTime->add(new DateInterval('P1D'));    

            if ($dateTime->format('N') < 6) {
                $days--;
            }
        }

    return $dateTime->format('Y-m-d');
}

指定された日数で開始日から何日になるかを計算し、週末をスキップします。

これをエコーする場合:

echo calculateNextDate('2012-10-01', '10');

それは印刷されます:

2012-10-15

どちらが間違っている... 2012-10-01+ 10 営業日は2012-10-12

別の日を追加する理由について何か考えはありますか?

4

1 に答える 1

3

1 + 10 = 11 です。10 ではありません。

したがって、アルゴリズムで 10 月 1 日に 10 日を追加するように要求すると、金曜日の 12 ではなく、実際には月曜日の 15 になります...

あなたは金曜日が欲しいですか?それから9日…

于 2012-10-11T15:44:51.920 に答える