PHP,每年运行一次,每次需要配置指定,当前年,法定假日,调休日 无 ?php$year = '2014';function addYear($date){ return $GLOBALS['year'].'-'.$date;}function getWorkDays($startDate,$endDate,$publicHolidays,$holidayTune){ $workDays = array(); whi
PHP,每年运行一次,每次需要配置指定,当前年,法定假日,调休日
<?php $year = '2014'; function addYear($date) { return $GLOBALS['year'].'-'.$date; } function getWorkDays($startDate,$endDate,$publicHolidays,$holidayTune) { $workDays = array(); while(1){ $day = date('Y-n-j', $startDate); if(!in_array($day,$publicHolidays)) { $workDays[] = $day; } $startDate += 86400; if($startDate>=$endDate){break;} } foreach($workDays as $k=>$date) { $info = getdate(strtotime($date)); if(in_array($info['weekday'],array('Sunday','Saturday')) and !in_array($date,$holidayTune)) { unset($workDays[$k]); } } return $workDays; } // define the public holidays $publicHolidays = array('1-1','1-31','2-1','2-2','2-3','2-4','2-5','2-6','4-5','4-6','4-7','5-1','5-2','5-3','5-31','6-1','6-2','9-6','9-7','9-8','10-1','10-2','10-3','10-4','10-5','10-6','10-7'); $publicHolidays = array_map('addYear',$publicHolidays); // define the holiday tune. $holidayTune = array('1-26','2-8','5-4','9-28','10-11'); $holidayTune = array_map('addYear',$holidayTune); // initialize starting date and the ending date. $startDate = strtotime($year.'-1-1'); $endDate = strtotime('+1 Year', $startDate); $workDays = getWorkDays($startDate,$endDate,$publicHolidays,$holidayTune); echo json_encode($workDays);