获取某个日期所在月的第n周的时间范围

//获取某个日期所在月的第n周的时间范围(第一周 1号至7号)
function getOneWeekByDate($date = '', $n = 5)
{
    $date  = strtotime('20211001');
    $t     = date('t', $date);  //当月天数
    $n_max = ceil($t / 7);  //当月最大周数
    if ($n < 1) {
        $n = 1;
    } elseif ($n > $n_max) {
        $n = $n_max;
    }
    $start_time = strtotime('+' . ($n - 1) * 7 . 'days', $date);
    if ($n * 7 <= $t) {
        $end_time = strtotime('+6 days', $start_time);
    } else {
        $end_time = strtotime('+1 month -1 days', $date);
    }
    $start_time = date('Y-m-d', $start_time);
    $end_time   = date('Y-m-d', $end_time);
    return compact('start_time', 'end_time');
}

 

posted @ 2021-08-27 14:03  CanyingV  阅读(56)  评论(0编辑  收藏  举报