Get date range between two dates excluding weekends

后端 未结 4 1726
情话喂你
情话喂你 2020-11-29 06:16

Given the following dates:

6/30/2010 - 7/6/2010

and a static variable:

$h = 7.5

I need to create an array

4条回答
  •  广开言路
    2020-11-29 06:50

    For PHP >= 5.3.0, use the DatePeriod class. It's unfortunately barely documented.

    $start = new DateTime('6/30/2010');
    $end = new DateTime('7/6/2010');
    $oneday = new DateInterval("P1D");
    
    $days = array();
    $data = "7.5";
    
    /* Iterate from $start up to $end+1 day, one day in each iteration.
       We add one day to the $end date, because the DatePeriod only iterates up to,
       not including, the end date. */
    foreach(new DatePeriod($start, $oneday, $end->add($oneday)) as $day) {
        $day_num = $day->format("N"); /* 'N' number days 1 (mon) to 7 (sun) */
        if($day_num < 6) { /* weekday */
            $days[$day->format("Y-m-d")] = $data;
        } 
    }    
    print_r($days);
    

提交回复
热议问题