> php教程 > php手册 > 2014年工作日计算(去除法定假日和周六日,但包括调休日)

2014年工作日计算(去除法定假日和周六日,但包括调休日)

WBOY
풀어 주다: 2016-06-06 19:34:35
원래의
1530명이 탐색했습니다.

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);
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿