2016-07-26 6 views
-2

다음은 내가 원하는 출력입니다.PHP에서 2 개의 다른 날짜 내에 15 일 묶음 배열을 만드는 방법?

함수에서 두 개의 다른 날짜를 전달한다고 가정합니다.

내가 어떻게 십오일의 아래에 결과가

function bunch_days15($date1, $date2){ 
} 

를 설정 내가 어떻게해야합니까 함수에 "01/01/2016 to 07/25/2016"을 통과 말할 수?

array{ 

    [0] => { 

      [0] 01/01/2016 
      [1] 01/15/2016 
     } 

    [1] => { 

     [0] 01/16/2016 
     [1] 01/31/2016 
    } 

    [2] => { 

      [0] 02/01/2016 
      [1] 02/15/2016 

     } 

    [3] => { 

     [0] 02/16/2016 
     [1] 02/28/2016 
    } 
} 

그리고 김

은 제가이 다른 날짜를 통과하는 일반적인 기능을 통해 알려 주시기 바랍니다 그리고 15 일 개 결과의 무리에서 배열을 반환합니다.

+0

유효한 함수 이름은 문자로 시작하거나 밑줄입니다. 그러므로'15daysBunch ($ date1, $ date2)'함수를 유효한 것으로 변경하십시오. –

+0

완료. 업데이 트를 주셔서 감사합니다 .. –

+0

@ montupepavanshi 1 + 15 16 다시해야 어떻게 15? 마찬가지로 17 + 15 – Thamilan

답변

0
function daysBunch($date1, $date2){ 
    $temp_date = $date1; 
    $days = array(); 
    $i = 0; 
    while(1){ 
     $next_date = date('m/d/Y', strtotime("$temp_date +14 days")); 
     if(strtotime($next_date) > strtotime($date2)){ 
      break; 
     } 
     $days[$i][] = $temp_date; 
     $days[$i][] = $next_date; 
     $temp_date = date('m/d/Y', strtotime("$next_date +1 days")); 
     $i++; 
    } 
    return $days; 
} 

$d1 = "01/01/2016"; 
$d2 = "07/25/2016"; 
var_dump(daysBunch($d1, $d2)); 

N.B : 날짜 2016년 1월 1일를 시작하기 위해 그것은 마찬가지로 당신에게 2016년 1월 15일을 줄 것이다 2016년 1월 16일 것이 2016년 1월 30일 표시됩니다.

+0

그것이 당신에게 효과가 있는지 알려주기 위해 :) –

+0

마지막 날은 계산에 들어오지 않는다. 그리고 나는 같은 배열에서 다른 달을 원하지 않는다. 감사합니다 –

0

여기에 문자, 숫자 또는 밑줄의 수에 따라 제 기능

function bunch_days15($date1, $date2){ 

$startDate = new DateTime($date1); 
$endDate = new DateTime($date2); 
$mArray = array(); 

while ($startDate <= $endDate) 
{ 
    $row = array(); 
    $row[] =$startDate->format("Y-m-01"); 
    $row[] = $startDate->format("Y-m-15"); 

    $mArray[] = $row; 

    $row = array(); 
    $row[] = $startDate->format("Y-m-16"); 
    $row[] = $startDate->format("Y-m-t"); 

    $mArray[] = $row; 

    $startDate = $startDate->modify('first day of next month');; 
} 
return $mArray; 

}

print_r(bunch_days15('2015-01-01','2016-06-08')); 
+0

그것은 1 년과 독립적이어야합니다. 2015 년 또는 2014 년이 될 수 있습니다. 이것은 2016 년에만 작동합니다 .. !! 그것은 내가 통과하는 어떤 해에도 작동해야합니다 .. –

+0

이 수정 된 버전의 내 기능을 확인하십시오. –

+0

그 작업이 궁금합니다. 감사 ! –