【问题标题】:Creating an array of dates with a sequence of intervals between days [duplicate]创建具有一系列日期间隔的日期数组[重复]
【发布时间】:2022-01-13 12:40:13
【问题描述】:

我正在尝试使用 PHP Carbon 库在提供的开始日期和结束日期之间填充日期数组。如果日期没有特定的顺序,这将是直截了当的..

这是场景:

我需要用每周四天来填充日期数组。例如,这些日期的顺序必须与星期二为开始日期的日期相同:

周二、周四、周六、周日 所以我需要一种方法来获取开始日期并在迭代到下周之前添加 2 天、2 天和 1 天。

这可以使用 Carbon (CarbonPeriod/CarbonInterval) 来实现吗?

或者我的解决方案是否需要自定义实现?

【问题讨论】:

    标签: php laravel date carbon


    【解决方案1】:

    Carbon 完全可以做到这一点:

    // $startDate as mentioned should be a valid Carbon date pointed to Tuesday
    
    $dates = [];
    for ($currentDate = $startDate; $currentDate <= $endDate; ) {
        $dates[] = $currentDate;
        $currentDate->addDays(2);
        $dates[] = $currentDate;
        $currentDate->addDays(2);
        $dates[] = $currentDate;
        $currentDate->addDay();
    }
    

    【讨论】:

      【解决方案2】:

      为什么不简单地在循环中使用DateTime::add(添加 2 天,然后 2 天,然后 1 天)?

      这里是documentation

      【讨论】:

        猜你喜欢
        • 2021-08-15
        • 1970-01-01
        • 1970-01-01
        • 2018-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多