我有这样的情况。我有一个存储在DB中的字符串,如下所示:
$string: 1,1,1,1,1,1,0
这意味着:星期日是0(假日),所有其他日子(星期一...星期六)都是1。
然后我有两个日期:今天(例如:2012-09-07)和一些结束日期(2012-10-04)。
我想知道如何才能获得今天和此结束日期(我的例子中为23天)之间的工作日总数(扣除假期)?我们应该使用存储在DB中的字符串。
答案 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