php獲取某一年的工作日列表
阿新 • • 發佈:2019-01-06
<?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);