如何在PHP的2个不同日期内制作15天束数组?

时间:2016-07-26 05:42:04

标签: php function date datetime datediff

以下是我想要的输出。

假设我在函数中传递了两个不同的日期。

假设我将“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
  }
}

和soo

请通过我通过2个不同日期的常见功能告诉我,它会在15天的结果中返回数组。

2 个答案:

答案 0 :(得分: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月16日为您提供2016年1月16日的2016年1月30日。

答案 1 :(得分: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'));