|  | @@ -0,0 +1,203 @@
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取本周、本季度、本月、上月的开始日期、结束日期
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +var now = new Date(); //当前日期
 | 
	
		
			
				|  |  | +var nowDayOfWeek = now.getDay(); //今天本周的第几天
 | 
	
		
			
				|  |  | +var nowDay = now.getDate(); //当前日
 | 
	
		
			
				|  |  | +var nowMonth = now.getMonth(); //当前月
 | 
	
		
			
				|  |  | +var nowYear = now.getYear(); //当前年
 | 
	
		
			
				|  |  | +nowYear += (nowYear < 2000) ? 1900 : 0; //
 | 
	
		
			
				|  |  | +var lastMonthDate = new Date(); //上月日期
 | 
	
		
			
				|  |  | +lastMonthDate.setDate(1);
 | 
	
		
			
				|  |  | +lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
 | 
	
		
			
				|  |  | +// var lastYear = lastMonthDate.getYear();
 | 
	
		
			
				|  |  | +var lastMonth = lastMonthDate.getMonth();
 | 
	
		
			
				|  |  | +//格式化日期:yyyy-MM-dd
 | 
	
		
			
				|  |  | +function formatDate(date) {
 | 
	
		
			
				|  |  | +    var myyear = date.getFullYear();
 | 
	
		
			
				|  |  | +    var mymonth = date.getMonth() + 1;
 | 
	
		
			
				|  |  | +    var myweekday = date.getDate();
 | 
	
		
			
				|  |  | +    if (mymonth < 10) {
 | 
	
		
			
				|  |  | +        mymonth = "0" + mymonth;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (myweekday < 10) {
 | 
	
		
			
				|  |  | +        myweekday = "0" + myweekday;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return (myyear + "-" + mymonth + "-" + myweekday);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得某月的天数
 | 
	
		
			
				|  |  | +function getMonthDays(myMonth) {
 | 
	
		
			
				|  |  | +    var monthStartDate = new Date(nowYear, myMonth, 1);
 | 
	
		
			
				|  |  | +    var monthEndDate = new Date(nowYear, myMonth + 1, 1);
 | 
	
		
			
				|  |  | +    var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
 | 
	
		
			
				|  |  | +    return days;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得本季度的开始月份
 | 
	
		
			
				|  |  | +function getQuarterStartMonth() {
 | 
	
		
			
				|  |  | +    var quarterStartMonth = 0;
 | 
	
		
			
				|  |  | +    if (nowMonth < 3) {
 | 
	
		
			
				|  |  | +        quarterStartMonth = 0;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (2 < nowMonth && nowMonth < 6) {
 | 
	
		
			
				|  |  | +        quarterStartMonth = 3;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (5 < nowMonth && nowMonth < 9) {
 | 
	
		
			
				|  |  | +        quarterStartMonth = 6;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (nowMonth > 8) {
 | 
	
		
			
				|  |  | +        quarterStartMonth = 9;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return quarterStartMonth;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得本周的开始日期
 | 
	
		
			
				|  |  | +function getWeekStartDate() {
 | 
	
		
			
				|  |  | +    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
 | 
	
		
			
				|  |  | +    return formatDate(weekStartDate) + ' 00:00:00';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得本周的结束日期
 | 
	
		
			
				|  |  | +function getWeekEndDate() {
 | 
	
		
			
				|  |  | +    var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
 | 
	
		
			
				|  |  | +    return formatDate(weekEndDate) + ' 23:59:59';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得上周的开始日期
 | 
	
		
			
				|  |  | +function getLastWeekStartDate() {
 | 
	
		
			
				|  |  | +    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);
 | 
	
		
			
				|  |  | +    return formatDate(weekStartDate) + ' 00:00:00';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得上周的结束日期
 | 
	
		
			
				|  |  | +function getLastWeekEndDate() {
 | 
	
		
			
				|  |  | +    var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1);
 | 
	
		
			
				|  |  | +    return formatDate(weekEndDate) + ' 23:59:59';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得本月的开始日期
 | 
	
		
			
				|  |  | +function getMonthStartDate() {
 | 
	
		
			
				|  |  | +    var monthStartDate = new Date(nowYear, nowMonth, 1);
 | 
	
		
			
				|  |  | +    return formatDate(monthStartDate) + ' 00:00:00';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得本月的结束日期
 | 
	
		
			
				|  |  | +function getMonthEndDate() {
 | 
	
		
			
				|  |  | +    var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
 | 
	
		
			
				|  |  | +    return formatDate(monthEndDate) + ' 23:59:59';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得上月开始时间
 | 
	
		
			
				|  |  | +function getLastMonthStartDate() {
 | 
	
		
			
				|  |  | +    var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
 | 
	
		
			
				|  |  | +    return formatDate(lastMonthStartDate) + ' 00:00:00';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得上月结束时间
 | 
	
		
			
				|  |  | +function getLastMonthEndDate() {
 | 
	
		
			
				|  |  | +    var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
 | 
	
		
			
				|  |  | +    return formatDate(lastMonthEndDate) + ' 23:59:59';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得本季度的开始日期
 | 
	
		
			
				|  |  | +function getQuarterStartDate() {
 | 
	
		
			
				|  |  | +    var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
 | 
	
		
			
				|  |  | +    return formatDate(quarterStartDate) + ' 00:00:00';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//或的本季度的结束日期
 | 
	
		
			
				|  |  | +function getQuarterEndDate() {
 | 
	
		
			
				|  |  | +    var quarterEndMonth = getQuarterStartMonth() + 2;
 | 
	
		
			
				|  |  | +    var quarterStartDate = new Date(nowYear, quarterEndMonth,
 | 
	
		
			
				|  |  | +        getMonthDays(quarterEndMonth));
 | 
	
		
			
				|  |  | +    return formatDate(quarterStartDate) + ' 23:59:59';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得前半年开始时间
 | 
	
		
			
				|  |  | +function getHalfYearStartDate() {
 | 
	
		
			
				|  |  | +    var firstHalfYearStartDate = new Date(nowYear, 1 - 1, 1);
 | 
	
		
			
				|  |  | +    return formatDate(firstHalfYearStartDate) + ' 00:00:00';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获前半年结束时间
 | 
	
		
			
				|  |  | +function getHalfYearEndDate() {
 | 
	
		
			
				|  |  | +    var firstHalfYearEndDate = new Date(nowYear, 6 - 1, 30);
 | 
	
		
			
				|  |  | +    return formatDate(firstHalfYearEndDate) + ' 23:59:59';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获得前今年开始时间
 | 
	
		
			
				|  |  | +function getThisYearStartDate() {
 | 
	
		
			
				|  |  | +    var firstThisYearStartDate = new Date(nowYear, 1 - 1, 1);
 | 
	
		
			
				|  |  | +    return formatDate(firstThisYearStartDate) + ' 00:00:00';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获前今年结束时间
 | 
	
		
			
				|  |  | +function getThisYearEndDate() {
 | 
	
		
			
				|  |  | +    var firstThisYearEndDate = new Date(nowYear, 12 - 1, 31);
 | 
	
		
			
				|  |  | +    return formatDate(firstThisYearEndDate) + ' 23:59:59';
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//获取当前日期yy-mm-dd
 | 
	
		
			
				|  |  | +//date 为时间对象
 | 
	
		
			
				|  |  | +function getDateStr3(date) {
 | 
	
		
			
				|  |  | +    var year = "";
 | 
	
		
			
				|  |  | +    var month = "";
 | 
	
		
			
				|  |  | +    var day = "";
 | 
	
		
			
				|  |  | +    var now = date;
 | 
	
		
			
				|  |  | +    year = "" + now.getFullYear();
 | 
	
		
			
				|  |  | +    if ((now.getMonth() + 1) < 10) {
 | 
	
		
			
				|  |  | +        month = "0" + (now.getMonth() + 1);
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +        month = "" + (now.getMonth() + 1);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if ((now.getDate()) < 10) {
 | 
	
		
			
				|  |  | +        day = "0" + (now.getDate());
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +        day = "" + (now.getDate());
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return year + "-" + month + "-" + day;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +/** 
 | 
	
		
			
				|  |  | + * 获得相对当前周AddWeekCount个周的起止日期 
 | 
	
		
			
				|  |  | + * AddWeekCount为0代表当前周  为-1代表上一个周  为1代表下一个周以此类推
 | 
	
		
			
				|  |  | + * **/
 | 
	
		
			
				|  |  | +function getWeekStartAndEnd(AddWeekCount) {
 | 
	
		
			
				|  |  | +    //起止日期数组  
 | 
	
		
			
				|  |  | +    var startStop = new Array();
 | 
	
		
			
				|  |  | +    //一天的毫秒数  
 | 
	
		
			
				|  |  | +    var millisecond = 1000 * 60 * 60 * 24;
 | 
	
		
			
				|  |  | +    //获取当前时间  
 | 
	
		
			
				|  |  | +    var currentDate = new Date();
 | 
	
		
			
				|  |  | +    //相对于当前日期AddWeekCount个周的日期
 | 
	
		
			
				|  |  | +    currentDate = new Date(currentDate.getTime() + (millisecond * 7 * AddWeekCount));
 | 
	
		
			
				|  |  | +    //返回date是一周中的某一天
 | 
	
		
			
				|  |  | +    var week = currentDate.getDay();
 | 
	
		
			
				|  |  | +    //返回date是一个月中的某一天  
 | 
	
		
			
				|  |  | +    // var month = currentDate.getDate();
 | 
	
		
			
				|  |  | +    //减去的天数  
 | 
	
		
			
				|  |  | +    var minusDay = week != 0 ? week - 1 : 6;
 | 
	
		
			
				|  |  | +    //获得当前周的第一天  
 | 
	
		
			
				|  |  | +    var currentWeekFirstDay = new Date(currentDate.getTime() - (millisecond * minusDay));
 | 
	
		
			
				|  |  | +    //获得当前周的最后一天
 | 
	
		
			
				|  |  | +    var currentWeekLastDay = new Date(currentWeekFirstDay.getTime() + (millisecond * 6));
 | 
	
		
			
				|  |  | +    //添加至数组  
 | 
	
		
			
				|  |  | +    startStop.push(getDateStr3(currentWeekFirstDay));
 | 
	
		
			
				|  |  | +    startStop.push(getDateStr3(currentWeekLastDay));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return startStop;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +/** 
 | 
	
		
			
				|  |  | + * 获得相对当月AddMonthCount个月的起止日期 
 | 
	
		
			
				|  |  | + * AddMonthCount为0 代表当月 为-1代表上一个月 为1代表下一个月 以此类推
 | 
	
		
			
				|  |  | + * ***/
 | 
	
		
			
				|  |  | +function getMonthStartAndEnd(AddMonthCount) {
 | 
	
		
			
				|  |  | +    //起止日期数组  
 | 
	
		
			
				|  |  | +    var startStop = new Array();
 | 
	
		
			
				|  |  | +    //获取当前时间  
 | 
	
		
			
				|  |  | +    var currentDate = new Date();
 | 
	
		
			
				|  |  | +    var month = currentDate.getMonth() + AddMonthCount;
 | 
	
		
			
				|  |  | +    if (month < 0) {
 | 
	
		
			
				|  |  | +        var n = parseInt((-month) / 12);
 | 
	
		
			
				|  |  | +        month += n * 12;
 | 
	
		
			
				|  |  | +        currentDate.setFullYear(currentDate.getFullYear() - n);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    currentDate = new Date(currentDate.setMonth(month));
 | 
	
		
			
				|  |  | +    //获得当前月份0-11  
 | 
	
		
			
				|  |  | +    var currentMonth = currentDate.getMonth();
 | 
	
		
			
				|  |  | +    //获得当前年份4位年  
 | 
	
		
			
				|  |  | +    var currentYear = currentDate.getFullYear();
 | 
	
		
			
				|  |  | +    //获得上一个月的第一天  
 | 
	
		
			
				|  |  | +    var currentMonthFirstDay = new Date(currentYear, currentMonth, 1);
 | 
	
		
			
				|  |  | +    //获得上一月的最后一天  
 | 
	
		
			
				|  |  | +    var currentMonthLastDay = new Date(currentYear, currentMonth + 1, 0);
 | 
	
		
			
				|  |  | +    //添加至数组  
 | 
	
		
			
				|  |  | +    startStop.push(getDateStr3(currentMonthFirstDay));
 | 
	
		
			
				|  |  | +    startStop.push(getDateStr3(currentMonthLastDay));
 | 
	
		
			
				|  |  | +    //返回  
 | 
	
		
			
				|  |  | +    return startStop;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +export { getWeekStartAndEnd, getMonthStartAndEnd, getHalfYearStartDate, getHalfYearEndDate, getThisYearStartDate, getThisYearEndDate, getWeekStartDate, getWeekEndDate, getLastWeekStartDate, getLastWeekEndDate, getMonthStartDate, getMonthEndDate, getLastMonthStartDate, getLastMonthEndDate, getQuarterStartDate, getQuarterEndDate }
 |