如何在php/laravel中获取最后5周的范围及其开始和结束日期
我想要一周范围的开始和结束日期最后5个,当前一周范围如下如何在php/laravel中获取最后5周的范围及其开始和结束日期,php,laravel,date,datetime,php-carbon,Php,Laravel,Date,Datetime,Php Carbon,我想要一周范围的开始和结束日期最后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(
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);
}
不知道在laravel中,但在PHP中,将值存储在数组中,如$weekArray[],在视图端使用foreach或for循环,您将获得所有值。然后,您将不得不多次调用函数获取范围。一圈!!本周的开始日期是否应始终为Monday@RiggsFolly是的。但我不知道怎么做?我应该检查哪些输入和条件。周从周一开始建议:更改
返回$weeks代码>到返回数组\u反向($weeks)代码>和数组将按照OP在问题中要求的顺序:)
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
)
)