一尘不染

获取两个日期之间的日期范围(不包括周末)

php

给定以下日期:

6/30/2010 - 7/6/2010

和一个静态变量:

$h = 7.5

我需要创建一个数组,如:

Array ( [2010-06-30] => 7.5 [2010-07-01] => 7.5 => [2010-07-02] => 7.5 => [2010-07-05] => 7.5 => [2010-07-06] => 7.5)

周末除外。

不,这不是功课…出于某种原因,我今天无法直截了当。


阅读 376

收藏
2020-05-29

共1个答案

一尘不染

对于PHP> = 5.3.0,请使用DatePeriod类。不幸的是,几乎没有记录。

$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);
2020-05-29