码迷,mamicode.com
首页 > 其他好文 > 详细

获取周的日期范围

时间:2019-08-01 13:11:45      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:first   day   第一天   星期六   获取   一周   @param   date   闰年   

/**
 * 获取周的日期范围
 * @param string $week
 * @param string $year
 * @return array
 */
public static function getWeekDate($week = '',$year = '') {
    /**
     * 2007年 第一周 是 01-01 到 01 - 07 因为第一天就是星期一 6
     * 2008年 第一周 是 01-01 到 01 - 06 因为第一天就是星期二 5 (闰年多一天)
     * 2009年 第一周 是 01-01 到 01 - 04 因为第一天就是星期四 3
     * 2010年 第一周 是 01-01 到 01 - 03 因为第一天就是星期五 2
     * 2011年 第一周 是 01-01 到 01 - 02 因为第一天就是星期六 1
     * 2012年 第一周 是 01-01 到 01 - 01 因为第一天就是星期天 0
     *
     * 2019年 第一周 是 01-01 到 01 - 06 因为第一天就是星期二 5
     */
    $year = $year ? : date('Y');
    // 获取第一天
    $first_date = $year.'-01-01';
    // 获取第一天是周几
    $week_num = array(7, 1, 2, 3, 4, 5, 6);
    $first_date_week = $week_num[date('w',strtotime($first_date))];
    $first_week_end_day  =1 + (7 - $first_date_week);
    $out_data = [];
    if ($week === 1) {
        $out_data['first_date'] = $first_date;
        $out_data['end_date']   = date('Y-m-d',strtotime('+'.($first_week_end_day - 1).' day',strtotime($first_date)));
    } else {
        $week_begin_day = $first_week_end_day + ($week - 2) * 7 + 1;
        $week_end_day = $week_begin_day + 6;
        $out_data['first_date'] = date('Y-m-d',strtotime('+'.($week_begin_day - 1).' day',strtotime($first_date)));
        $out_data['end_date']   = date('Y-m-d',strtotime('+'.($week_end_day - 1).' day',strtotime($first_date)));
    }
    return $out_data;
}

获取周的日期范围

标签:first   day   第一天   星期六   获取   一周   @param   date   闰年   

原文地址:https://www.cnblogs.com/jiqing9006/p/11281804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!