如何计算PHP中两个日期之间的工作日数?

时间:2012-09-07 09:40:07

标签: php mysql

我有这样的情况。我有一个存储在DB中的字符串,如下所示:

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

这意味着:星期日是0(假日),所有其他日子(星期一...星期六)都是1。

然后我有两个日期:今天(例如:2012-09-07)和一些结束日期(2012-10-04)。

我想知道如何才能获得今天和此结束日期(我的例子中为23天)之间的工作日总数(扣除假期)?我们应该使用存储在DB中的字符串。

2 个答案:

答案 0 :(得分: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
    }

这对你有用。您可能需要根据它是否包含它,何时开始等来修改它。

答案 1 :(得分:0)

你试过date_diff()吗? http://php.net/manual/en/function.date-diff.php