2016-07-26 3 views
-2

Ниже представлен вывод, который я хочу получить в php.Как сделать 15-дневный массив бит в течение двух разных дат в PHP?

Предположим, что передаю две разные даты в функции.

позволяет сказать, что я прошел «01/01/2016 to 07/25/2016» В функции

function bunch_days15($date1, $date2){ 
} 

Как получить приведенные ниже результаты 15 дней установить?

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 
    } 
} 

И Су

Пожалуйста, дайте мне знать через общих функций, в которых я прошел 2 разные даты, и он будет возвращать массив в кучу 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: Для начальной даты 01/1/2016 это даст вам 01/15/2016 аналогично для 01/16/2016 это покажет 01/30/2016.

+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

Он должен быть независим от года. год может быть 2015 или 2014 или около того. это будет работать только на 2016 год. !! он должен работать в любом году, который я передаю. –

+0

Проверьте эту измененную версию моей функции –

+0

Интересно, ее работа. Благодаря ! –