0

このような状況があります。次のように、DBに格納された文字列があります。

$string: 1,1,1,1,1,1,0 

つまり、日曜日は 0 (休日)、その他すべての日 (月...土) は 1 です。

次に、今日 (例: 2012-09-07) と終了日 (2012-10-04) の 2 つの日付があります。

今日とこの終了日 (私の例では 23 日) の間の合計営業日数 (休日を差し引いたもの) を取得するにはどうすればよいでしょうか? DB に格納されている文字列を使用する必要があります。

4

2 に答える 2

2
$workdays = explode(",", "1,1,1,1,1,1,0"); // turn string to array (Monday to Sunday)
$days = 0;
$time = strtotime("2012-09-07");
$end_time = strtotime("2012-10-04");
while ($time < $end_time)
    {
        $day_of_week = date("N", $time) - 1; // 0 = Monday, 6 = Sunday
        if ($workdays[$day_of_week] == 1)
            {
                $days++;
            }
        $time = strtotime("+1 day", $time); // add one day to time
    }

これはうまくいくはずです。包括的かどうか、開始時期などに基づいて変更する必要がある場合があります。

于 2012-09-07T09:50:26.503 に答える
0

date_diff() を試しましたか? http://php.net/manual/en/function.date-diff.php

于 2012-09-07T09:43:56.627 に答える