zoukankan      html  css  js  c++  java
  • 获取周的日期范围

    /**
     * 获取周的日期范围
     * @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;
    }
    
  • 相关阅读:
    Vitrualbox虚拟机网络设置
    挂接命令(mount) 【转】
    ubuntu Error mounting /dev/sda6 at /media/xxx...
    mysql命令[转]
    fopen参数
    fprintf&prinft&sprintf
    UNIX 网络编程知识,函数积累
    vim 括号自动补全
    CDbConnection failed to open the DB connection
    [Android_蓝牙]Android4.0蓝牙使能的详细解析
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/11281804.html
Copyright © 2011-2022 走看看