如果我使用循环来传递数组中的日期,如何传递连续的日期?我创建了一个简单的函数来解决我的问题,但当我得到> 1个日期连续时,我被卡住了。代码
function daySkip($date, $count=0) {
$holidays = ["2023-06-19"];
$MyDateCarbon = Carbon::parse($date);
$MyDateCarbon->addWeekdays($count);
for ($i = 1; $i <= $count; $i++) {
if (in_array(Carbon::parse($date)->addWeekdays($i)->toDateString(), $holidays)) {
$MyDateCarbon->addDay();
}
}
return $MyDateCarbon->format("d-m-Y");
}
当我使用
$input = "2023-06-16";
$addday = daySkip($input, 1);
//output 20-06-2023
我的代码起作用了。但是如果假日数组中有变化,例如我也输入数据20-06-2023,如
$holidays = ["2023-06-19", "2023-06-20"];
那我的结果还是
//output 20-06-2023
怎么解决?我得到的日期应该是
//output 21-06-2023
我如何做一个适当的循环来获得数组中的假日数量?请指教
2条答案
按热度按时间x0fgdtte1#
我想你可能想在
$holiday
数组上循环,所以我改变了到
所以现在的代码是
结果就是
nuypyhwy2#
用这个替换你的for循环。每当数组中有新日期时,它都会添加一个日期