我正在循环显示当月的一系列天数,以生成当天或之后的另一个天数,这样做效果很好。我现在需要排除/省略任何日期,如果它们是星期六或星期日。
如果可以包含周六/周日日期的支票,我正在努力解决,例如:
date('N', strtotime($day)) >= 6);
使用我现有的代码生成数组:
// Get days for current month
$day = date("Y-m-d");
$i = strtotime($day);
array("year" => array("month" => array(days)));
$allDays = array(
date('Y', $i) => array(
date('n') => range(date('d', $i), intval(date('t'))),
),
);
不确定如何将周末日期的测试与此相结合,或者我是否需要在这里使用forloop等?
答案 0 :(得分:1)
假设您尝试在当前月份之外的所有日子(周末除外):您可以使用array_filter()
进行回调以获取周末天数,然后使用{{ 3}}创建一个仅包含工作日的新数组:
$year = date('Y');
$month = date('n');
$weekend_days = array_filter($allDays[$year][$month], function($d) {
return (date('N', strtotime(date("Y-m-$d"))) >= 6);
});
$allDays[$year][$month] = array_diff($allDays[$year][$month], $weekend_days);
print_r($allDays);
答案 1 :(得分:0)
在将每个值添加到数组之前,您可以检查日期:
if (!in_array(date('w', $i), array('0', '6')))
{
// add $i to array
}