获取周的日期范围

/**
 * 获取周的日期范围
 * @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;
}

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

时间: 2024-10-10 13:16:56

获取周的日期范围的相关文章

js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子

JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 格式化日期: function getNowFormatDate(theDate) { var day = theDate; var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year= day.getFullYear();// ie火狐下都可以 Month= day.getMonth()

根据周次获取周次的日期范围

根据周次获取周次的日期范围 /** * 返回某年某月周次范围 * @param year 年份 * @param weeks 周次 * @return 返回周次的日期范围 */ function getXDate(year,weeks){ var date = new Date(year,"0","1"); var time = date.getTime(); // 获取当前星期几,0:星期一 .... var _week = date.getDay(); //当这

获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)

获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.out.println(getStartEndDate("2016-05-01", 0)); public static String getStartEndDate(String aDay, int type) { SimpleDateFormat df = new SimpleDateFo

sql 中,如何获取两个日期之前月数、周数、天数

1.获取两个日期之间的月数.周数.天数语法 --1.获取两个日期之间的月数.周数.天数 --1.1)声明参数 declare @startDate varchar(20) declare @endDate varchar(20) --1.2)获取两个日期直接的月数 select DATEDIFF(MM,@startDate,@endDate) --1.3)获取两个日期直接的月数 select DATEDIFF(WW,@startDate,@endDate) --1.4)获取两个日期直接的月数 s

获取当前周、上一周、下一周的日期

使用JS或者是JQuery获取当前周和上一周.下一周的日期时间信息的方法,摘自 http://www.qdfuns.com/notes/18184/435de54dd1e41baf6777039e394c0100.html,目的仅仅是为了做个笔记,侵删!以下是代码以及解析: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html > <head> <meta h

16、根据年月日获取周几 以及整理的日期常用的工具类

1 /** 2 * @param year 3 * @param month 4 * @param day 5 * @return 6 */ 7 public static String CaculateWeekDay(int y,int m,int d) 8 { 9 10 String strDate = y+"-"+m+"-"+d;// 定义日期字符串 11 SimpleDateFormat format = new SimpleDateFormat("

获取某一个日期所在周的第一天

由于统计需要,先要获取指定日期来获取该日期所在周的第一天,从而算出所在周是哪一天至哪一天.先看下面代码,是获取当天的日期. DateTime.Today 如果不是当天,而是指定日期,需要把它转换为日期. DateTime dt = Convert.ToDateTime("2013-08-02"); 如果,你把指定的日期,是一个非规则的日期格式的字符串,那得使用DateTime.ParseExact来转换http://www.cnblogs.com/insus/p/3231007.htm

SQL获取当前时间(日期)

--获取当前日期(如:yyyymmdd)select CONVERT (nvarchar(12),GETDATE(),112) --获取当前日期(如:yyyymmdd hh:MM:ss)select GETDATE() --获取当前日期(如:yyyy-mm-dd)Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day,GetDate()) --获取当前日期(如:yyyy/mm/dd)select

Js获取当前日期时间+日期印证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天

Js获取当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天 字符串转日期型+Js当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+日期所在年的第几周 日期时间脚本库方法列表Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符