2010-08-09 8 views
1

안녕에 대한 새로운 시작 날짜를 만들 주말 중지 json 달력에 표시되는 json 출력의 일부입니다. startdate 및 enddate를 선택하여 렌더링합니다.PHP 영업일 이미 내가 다른 질문에서이 코드를 사용하고 월요일

출력을 반환하는 코드를 만들면 주말에 끝 날짜가 생기고 월요일로 건너 뛰고 시작 날짜가 만들어지고 원래 지정된 종료 날짜에 도달 할 때까지 계속 출력 할 수 있습니까?

x = date('w'); 
if (x != 6) { 
while (x != 6) { 
//start adding days to start date 
} 
} else { 
//create new enddate = current iteration of dates currentdate; 

//then new start (add two days to it to get to monday) currentdate + 2 = newstartdate 
//redo above till you get to original end date 
+0

이 질문은 매우 혼란 스럽습니다. 아마 당신은 우리에게 약간의 문맥을주기 위해 이전의 질문에 연결할 수 있습니다. – Artefacto

답변

2

질문/기능이 실제로하고있는 일에 대해 100 % 확신하지는 않지만 (정확하게 추측 한 경우) 여기 아이디어가 있습니다.

function add_business_days($startdate, $businessdays, $holidays, $dateformat) 
{ 
    $start = new DateTime($startdate); 
    $date = new DateTime($startdate); 
    $date->modify("+{$businessdays} weekdays"); 

    foreach ($holidays as $holiday) { 
     $holiday = new DateTime($holiday); 
     // If holiday is a weekday and occurs within $businessdays of the $startdate 
     if ($holiday->format('N') < 6 && $holiday >= $start && $holiday <= $date) { 
      $date->modify("+1 weekday"); 
     } 
    } 
    return $date->format($dateformat); 
} 

로직은 기본적으로 시작일에 $businessdays 평일을 추가합니다. 그 다음 날짜 범위 내의 공휴일을 확인합니다. 공휴일이 발생하면 최종 날짜가 적절하게 증가합니다.

+0

안녕하세요, 고마워요. 실제로 다른 경로를 택할 것 같아요. 주말을 캘린더보기에서 숨기고 작동하는 add_business_days 기능을 사용할 것입니다. 동일한 효과와 덜 번거로운 작업입니다. –

관련 문제