如何在 php/laravel 中获取最近 5 周的范围及其开始和结束日期

how to get last 5 week range and its start and end dates in php/ laravel

我希望周范围的开始和结束日期为最后 5 个,当前周范围如下所示

2019-12-09 : 2019-12-15
2019-12-16 : 2019-12-22
2019-12-23 : 2019-12-29
2019-12-30 : 2020-01-05
2020-01-06 : 2020-01-12
2020-01-13 : 2020-01-19

我能够从以下代码中获取当前周范围的开始和结束日期(2020-01-13 : 2020-01-19)

在控制器中

public function index()
{
    $currentWeekNumber = date("W"); 
    $currentYear = date("Y");  
    $weekArray = $this->getStartAndEndDate($currentWeekNumber,$currentYear);
    return view('mainMenu.timesheetFillLanding', compact('weekArray'));
}

public function getStartAndEndDate($week, $year) 
{
    //Below gives week from mon to sun
    $dto = new DateTime();
    $dto->setISODate($year, $week);
    $ret['start'] = $dto->format('Y-m-d');
    $dto->modify('+6 days');
    $ret['end'] = $dto->format('Y-m-d');
    return $ret;
}

正在观看

{{$weekArray['start']}} : {{$weekArray['end']}} 

我无法获得前一周的范围及其开始和结束日期。我搜索了很多解决方案但没有帮助。

请帮忙。提前致谢

试试下面的代码。它为你工作。 我已经更改了 getStartAndEndDate() 函数。

public function getStartAndEndDate($week, $year) 
{
    //Below gives week from mon to sun
    $weeks = [];
    $dto = new DateTime();
    $dto->setISODate($year, $week);    
    for($i=0;$i<=5;$i++) {               
        $weeks[$i]['start'] = $dto->format('Y-m-d');        
        $dto->modify('+6 days');        
        $weeks[$i]['end'] = $dto->format('Y-m-d');        
        $dto->modify('-13 days');   
    }
    return array_reverse($weeks);
}

=> 输出

Array
(
    [0] => Array
        (
            [start] => 2019-12-09
            [end] => 2019-12-15
        )

    [1] => Array
        (
            [start] => 2019-12-16
            [end] => 2019-12-22
        )

    [2] => Array
        (
            [start] => 2019-12-23
            [end] => 2019-12-29
        )

    [3] => Array
        (
            [start] => 2019-12-30
            [end] => 2020-01-05
        )

    [4] => Array
        (
            [start] => 2020-01-06
            [end] => 2020-01-12
        )

    [5] => Array
        (
            [start] => 2020-01-13
            [end] => 2020-01-19
        )

)