可能重复:
获取给定月份的工作日数
如何计算任何月份的工作日?cal_days_in_month只返回一个月中的总天数.我的任务是计算除星期六,星期日或星期日外的每月天数.找到这个的任何方法?
Ama*_*mar 13
复制第二个答案:获取给定月份的工作日数
您不需要计算每月的每一天.你已经知道前28天包含20个工作日,无论如何.您所要做的就是确定最近几天.将起始值更改为29.然后将20个工作日添加到返回值.
function get_weekdays($m,$y) {
$lastday = date("t",mktime(0,0,0,$m,1,$y));
$weekdays=0;
for($d=29;$d<=$lastday;$d++) {
$wd = date("w",mktime(0,0,0,$m,$d,$y));
if($wd > 0 && $wd < 6) $weekdays++;
}
return $weekdays+20;
}
Run Code Online (Sandbox Code Playgroud)
这应该解决您的问题,确实是一个有效的解决方案.
Sal*_*n A 13
function countDays($year, $month, $ignore) {
$count = 0;
$counter = mktime(0, 0, 0, $month, 1, $year);
while (date("n", $counter) == $month) {
if (in_array(date("w", $counter), $ignore) == false) {
$count++;
}
$counter = strtotime("+1 day", $counter);
}
return $count;
}
echo countDays(2013, 1, array(0, 6)); // 23
Run Code Online (Sandbox Code Playgroud)
该date示例中使用了该函数.关于忽略参数的注意事项:0是星期日,...,6是星期六.
| 归档时间: |
|
| 查看次数: |
15953 次 |
| 最近记录: |