PHPLaravel如何获取假期持续时间的日期数组

PHPLaravel如何获取假期持续时间的日期数组,php,laravel,Php,Laravel,嗨,我正在尝试从我的休假表中获取休假日期数组。我希望能够以“Y-m-d”格式获取每行休假数据的“开始日期”到“结束日期”列中的日期,以便与“Y-m-d”格式的getDays方法进行比较 以下是我当前在控制器类中使用的方法: private function getLeaves() { $leavesList = Leave::where('clinic_id', '=', $_SESSION['clinic_ID'])->get(); $leaves

嗨,我正在尝试从我的休假表中获取休假日期数组。我希望能够以“Y-m-d”格式获取每行休假数据的“开始日期”到“结束日期”列中的日期,以便与“Y-m-d”格式的getDays方法进行比较

以下是我当前在控制器类中使用的方法:

private function getLeaves()
    {
        $leavesList = Leave::where('clinic_id', '=', $_SESSION['clinic_ID'])->get();
        $leavesArray = json_decode($leavesList, true);
        
        foreach($leavesArray as $leave){
            //Convert each data from table to Y-m-d format to compare
            $leaves[] = CarbonPeriod::create(date('Y-m-d', strtotime($leave['start_date'])), date('Y-m-d', strtotime($leave['end_date'])));
            
        }
        return $leaves;
        
    }
目前的输出是:

[2021-05-20T16:00:00.000000Z],[2021-05-06T16:00:00.000000Z],[2021-05-07T16:00:00.000000Z]]


您的问题是函数
CarbonPeriod::create()
返回一个period对象。如果你想得到这段时间内的每一天,你需要在这段时间内迭代并格式化你的日期

public function getLeaves()
{
    $leavesList = Leave::where('clinic_id', '=', $_SESSION['clinic_ID'])->get();
    $leavesArray = json_decode($leavesList, true);

    foreach($leavesArray as $leave){
        //Convert each data from table to Y-m-d format to compare
        $days = CarbonPeriod::create(
            date('Y-m-d', strtotime($leave['start_date'])),
            date('Y-m-d', strtotime($leave['end_date'])));

        foreach ($days as $day) {
            $leaves[] = $day->format('Y-m-d');
        }
    }
    return $leaves;

}

您希望您的输出是什么样的?你能给出一个示例输入和一个示例输出吗?嗨@HamzaMogni这是我想要的输入
array:169[▼   0 => "2021-04-30"   1 => "2021-05-03"   2 => "2021-05-04"   3 => "2021-05-05"   4 => "2021-05-06"   5 => "2021-05-10"   6 => "2021-05-11"   7 => "2021-05-12"   8 => "2021-05-14"   9 => "2021-05-17"   10 => "2021-05-18"]
下面的答案在我的函数中帮助我从我的年度数组日期列表中筛选出休假日期期间。您好,感谢您的输入和解释,它现在肯定可以工作了!