首页 > 解决方案 > 自定义日期范围

问题描述

我有一个看起来像这样的日期数组,它是一个日期列表。

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
        )

)

标签: phparrays

解决方案


你可以试试这个例子。

$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);

小提琴


推荐阅读