Настраиваемый диапазон дат

#php #arrays

Вопрос:

У меня есть массив дат, которые выглядят так, это список дат.

 Array
(
    [0] => 2021-07-05
    [1] => 2021-07-06
    [2] => 2021-07-07
    [3] => 2021-07-08
    [4] => 2021-07-09
    [5] => 2021-07-10
    [6] => 2021-07-11
    [7] => 2021-07-12
    [8] => 2021-07-13
    [9] => 2021-07-14
    [10] => 2021-07-15
    [11] => 2021-07-16
    [12] => 2021-07-17
    [13] => 2021-07-18
    [14] => 2021-07-19
    [15] => 2021-07-20
    [16] => 2021-07-21
    [17] => 2021-07-22
)
 

Как я могу получить нижеприведенные диапазоны дат? Каждые 6 свиданий, потому что мне нужно зацикливаться определенным образом.

 Array
(
    [0] => Array
        (
            [from] => 2021-07-05
            [to] => 2021-07-11
        )

    [1] => Array
        (
            [from] => 2021-07-11
            [to] => 2021-07-17
        )
    [2] => Array
        (
            [from] => 2021-07-17
            [to] => 2021-07-22
        )

)
 

Ответ №1:

Вы можете попробовать этот пример.

 $from = $dates[0];
$to = $from;
$result = [];

foreach($dates as $date) {
    if (strtotime($from)   60 * 60 * 24 * 6 < strtotime($date)) {
        $result[] = ['from' => $from, 'to' => $to];
        $from = $to;
    }
    $to = $date;
}
$result[] = ['from' => $from, 'to' => $to];

print_r($result);
 

играть на скрипке