如何在 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
)
)
我希望周范围的开始和结束日期为最后 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
)
)