繁体   English   中英

获取一个月中特定周的日期范围

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM