[英]Get a range of dates for a specific week in a month
我正在使用 Laravel,我想在输入一个月的周顺序时生成一个日期列表。 例如,当输入是“2021 年 10 月的第 2 周”(或简单地$week=2
, $month = 10
, $year = 2021
)时,它将返回从 10 月 10 日到 10 月 16 日的日期。 有谁能够帮助我?
你试过whereBetween
吗? 例如 :
$from = date('2021-01-01');
$to = date('2021-05-02');
Model::whereBetween('reservation_from', [$from, $to])->get();
用以下函数检查。 我想这可以给出你需要的结果。
public function getWeekDates($year, $month, $week) {
$dt = Carbon::create($year, $month, 1);
$numberOfWeeks = floor($dt->daysInMonth / Carbon::DAYS_PER_WEEK);
if(($numberOfWeeks + 1) < $week) {
return response()->json('Error : Invalid week provided.', 400);
}
$monthStartOfWeek = $dt->startOfWeek()->format('Y-m-d');
$monthEndOfWeek = $dt->endOfWeek()->format('Y-m-d');
$addDays = ($week-1) * Carbon::DAYS_PER_WEEK;
$dt = $dt->addDays($addDays);
$startOfWeek = $dt->startOfWeek()->format('Y-m-d');
$endOfWeek = $dt->endOfWeek()->format('Y-m-d');
$result = [
'year' => $year,
'month' => $month,
'week' => $week,
'start_of_week' => $startOfWeek,
'start_of_week' => $startOfWeek,
'end_of_week' => $endOfWeek,
];
return $result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.