php获取某一年的工作日列表

<?php
//节假日
$holidays =  [
    '20160101',
    '20160208',
    '20160209',
    '20160210',
    '20160211',
    '20160212',
    '20160304',
    '20160402',
    '20160403',
    '20160404',
    '20160430',
    '20160501',
    '20160502',
    '20160609',
    '20160610',
    '20160611',
    '20160915',
    '20160916',
    '20160917',
    '20161001',
    '20161002',
    '20161003',
    '20161004',
    '20161005',
    '20161006',
    '20161007'
];

//周末上班日
$weekendWorkDays = [
    '20160206',
    '20160214',
    '20160612',
    '20160918',
    '20161008',
    '20161009'
];

function getWorkDays($year, $holidays, $weekendWorkDays)
{
    $startDate = strtotime($year.'-01-01');
    $endDate = strtotime('+1 Year', $startDate) - 86400;

    $workDays = [];
    for ($startDate; $startDate <=$endDate; $startDate += 86400) {
        $info = getdate($startDate);
        $date = date('Ymd', $startDate);
        if((in_array($info['weekday'],array('Sunday','Saturday')) || in_array($date,$holidays)) && !in_array($date, $weekendWorkDays)){
            continue;
        }
        $workDays[] = (int)$date;
    }

    return $workDays;
}

$workDays = getWorkDays(2016, $holidays, $weekendWorkDays);

猜你喜欢

转载自blog.csdn.net/ligaofeng/article/details/51144653