Before Width: | Height: | Size: 350 B |
Before Width: | Height: | Size: 871 KiB |
Before Width: | Height: | Size: 612 B |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 172 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 596 KiB |
Before Width: | Height: | Size: 1008 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 869 B |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 99 B |
@ -0,0 +1,363 @@ |
|||
/** |
|||
* 日期范围工具类 |
|||
*/ |
|||
var dateRangeUtil = (function() { |
|||
/*** |
|||
* 获得当前时间 |
|||
*/ |
|||
this.getCurrentDate = function() { |
|||
return new Date(); |
|||
}; |
|||
|
|||
/*** |
|||
* 获得本周起止时间 |
|||
*/ |
|||
this.getCurrentWeek = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//返回date是一周中的某一天
|
|||
var week = currentDate.getDay(); |
|||
//返回date是一个月中的某一天
|
|||
var month = currentDate.getDate(); |
|||
|
|||
//一天的毫秒数
|
|||
var millisecond = 1000 * 60 * 60 * 24; |
|||
//减去的天数
|
|||
var minusDay = week != 0 ? week - 1 : 6; |
|||
//alert(minusDay);
|
|||
//本周 周一
|
|||
var monday = new Date(currentDate.getTime() - minusDay * millisecond); |
|||
//本周 周日
|
|||
var sunday = new Date(monday.getTime() + 6 * millisecond); |
|||
//添加本周时间
|
|||
startStop.push(monday.format('yyyy-MM-dd')); //本周起始时间
|
|||
//添加本周最后一天时间
|
|||
startStop.push(sunday.format('yyyy-MM-dd')); //本周终止时间
|
|||
//返回
|
|||
return startStop; |
|||
}; |
|||
|
|||
/*** |
|||
* 获得本月的起止时间 |
|||
*/ |
|||
this.getCurrentMonth = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//获得当前月份0-11
|
|||
var currentMonth = currentDate.getMonth(); |
|||
//获得当前年份4位年
|
|||
var currentYear = currentDate.getFullYear(); |
|||
//求出本月第一天
|
|||
var firstDay = new Date(currentYear, currentMonth, 1); |
|||
|
|||
//当为12月的时候年份需要加1
|
|||
//月份需要更新为0 也就是下一年的第一个月
|
|||
if (currentMonth == 11) { |
|||
currentYear++; |
|||
currentMonth = 0; //就为
|
|||
} else { |
|||
//否则只是月份增加,以便求的下一月的第一天
|
|||
currentMonth++; |
|||
} |
|||
|
|||
//一天的毫秒数
|
|||
var millisecond = 1000 * 60 * 60 * 24; |
|||
//下月的第一天
|
|||
var nextMonthDayOne = new Date(currentYear, currentMonth, 1); |
|||
//求出上月的最后一天
|
|||
var lastDay = new Date(nextMonthDayOne.getTime() - millisecond); |
|||
|
|||
//添加至数组中返回
|
|||
startStop.push(firstDay.format('yyyy-MM-dd')); |
|||
startStop.push(lastDay.format('yyyy-MM-dd')); |
|||
//返回
|
|||
return startStop; |
|||
}; |
|||
|
|||
/** |
|||
* 得到本季度开始的月份 |
|||
* @param month 需要计算的月份 |
|||
***/ |
|||
this.getQuarterSeasonStartMonth = function(month) { |
|||
var quarterMonthStart = 0; |
|||
var spring = 0; //春
|
|||
var summer = 3; //夏
|
|||
var fall = 6; //秋
|
|||
var winter = 9; //冬
|
|||
//月份从0-11
|
|||
if (month < 3) { |
|||
return spring; |
|||
} |
|||
|
|||
if (month < 6) { |
|||
return summer; |
|||
} |
|||
|
|||
if (month < 9) { |
|||
return fall; |
|||
} |
|||
|
|||
return winter; |
|||
}; |
|||
|
|||
/** |
|||
* 获得该月的天数 |
|||
* @param year年份 |
|||
* @param month月份 |
|||
* */ |
|||
this.getMonthDays = function(year, month) { |
|||
//本月第一天 1-31
|
|||
var relativeDate = new Date(year, month, 1); |
|||
//获得当前月份0-11
|
|||
var relativeMonth = relativeDate.getMonth(); |
|||
//获得当前年份4位年
|
|||
var relativeYear = relativeDate.getFullYear(); |
|||
|
|||
//当为12月的时候年份需要加1
|
|||
//月份需要更新为0 也就是下一年的第一个月
|
|||
if (relativeMonth == 11) { |
|||
relativeYear++; |
|||
relativeMonth = 0; |
|||
} else { |
|||
//否则只是月份增加,以便求的下一月的第一天
|
|||
relativeMonth++; |
|||
} |
|||
//一天的毫秒数
|
|||
var millisecond = 1000 * 60 * 60 * 24; |
|||
//下月的第一天
|
|||
var nextMonthDayOne = new Date(relativeYear, relativeMonth, 1); |
|||
//返回得到上月的最后一天,也就是本月总天数
|
|||
return new Date(nextMonthDayOne.getTime() - millisecond).getDate(); |
|||
}; |
|||
|
|||
/** |
|||
* 获得本季度的起止日期 |
|||
*/ |
|||
this.getCurrentSeason = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//获得当前月份0-11
|
|||
var currentMonth = currentDate.getMonth(); |
|||
//获得当前年份4位年
|
|||
var currentYear = currentDate.getFullYear(); |
|||
//获得本季度开始月份
|
|||
var quarterSeasonStartMonth = this.getQuarterSeasonStartMonth(currentMonth); |
|||
//获得本季度结束月份
|
|||
var quarterSeasonEndMonth = quarterSeasonStartMonth + 2; |
|||
|
|||
//获得本季度开始的日期
|
|||
var quarterSeasonStartDate = new Date(currentYear, quarterSeasonStartMonth, 1); |
|||
//获得本季度结束的日期
|
|||
var quarterSeasonEndDate = new Date(currentYear, quarterSeasonEndMonth, this.getMonthDays(currentYear, quarterSeasonEndMonth)); |
|||
//加入数组返回
|
|||
startStop.push(quarterSeasonStartDate.format('yyyy-MM-dd')); |
|||
startStop.push(quarterSeasonEndDate.format('yyyy-MM-dd')); |
|||
//返回
|
|||
return startStop; |
|||
}; |
|||
|
|||
/*** |
|||
* 得到本年的起止日期 |
|||
* |
|||
*/ |
|||
this.getCurrentYear = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//获得当前年份4位年
|
|||
var currentYear = currentDate.getFullYear(); |
|||
|
|||
//本年第一天
|
|||
var currentYearFirstDate = new Date(currentYear, 0, 1); |
|||
//本年最后一天
|
|||
var currentYearLastDate = new Date(currentYear, 11, 31); |
|||
//添加至数组
|
|||
startStop.push(currentYearFirstDate.format('yyyy-MM-dd')); |
|||
startStop.push(currentYearLastDate.format('yyyy-MM-dd')); |
|||
//返回
|
|||
return startStop; |
|||
}; |
|||
|
|||
/** |
|||
* 返回上一个月的第一天Date类型 |
|||
* @param year 年 |
|||
* @param month 月 |
|||
**/ |
|||
this.getPriorMonthFirstDay = function(year, month) { |
|||
//年份为0代表,是本年的第一月,所以不能减
|
|||
if (month == 0) { |
|||
month = 11; //月份为上年的最后月份
|
|||
year--; //年份减1
|
|||
return new Date(year, month, 1); |
|||
} |
|||
//否则,只减去月份
|
|||
month--; |
|||
return new Date(year, month, 1); |
|||
}; |
|||
|
|||
/** |
|||
* 获得上一月的起止日期 |
|||
* ***/ |
|||
this.getPreviousMonth = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//获得当前月份0-11
|
|||
var currentMonth = currentDate.getMonth(); |
|||
//获得当前年份4位年
|
|||
var currentYear = currentDate.getFullYear(); |
|||
//获得上一个月的第一天
|
|||
var priorMonthFirstDay = this.getPriorMonthFirstDay(currentYear, currentMonth); |
|||
//获得上一月的最后一天
|
|||
var priorMonthLastDay = new Date( |
|||
priorMonthFirstDay.getFullYear(), |
|||
priorMonthFirstDay.getMonth(), |
|||
this.getMonthDays(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth()), |
|||
); |
|||
//添加至数组
|
|||
startStop.push(priorMonthFirstDay.format('yyyy-MM-dd')); |
|||
startStop.push(priorMonthLastDay.format('yyyy-MM-dd')); |
|||
//返回
|
|||
return startStop; |
|||
}; |
|||
|
|||
/** |
|||
* 获得上一周的起止日期 |
|||
* **/ |
|||
this.getPreviousWeek = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//返回date是一周中的某一天
|
|||
var week = currentDate.getDay(); |
|||
//返回date是一个月中的某一天
|
|||
var month = currentDate.getDate(); |
|||
//一天的毫秒数
|
|||
var millisecond = 1000 * 60 * 60 * 24; |
|||
//减去的天数
|
|||
var minusDay = week != 0 ? week - 1 : 6; |
|||
//获得当前周的第一天
|
|||
var currentWeekDayOne = new Date(currentDate.getTime() - millisecond * minusDay); |
|||
//上周最后一天即本周开始的前一天
|
|||
var priorWeekLastDay = new Date(currentWeekDayOne.getTime() - millisecond); |
|||
//上周的第一天
|
|||
var priorWeekFirstDay = new Date(priorWeekLastDay.getTime() - millisecond * 6); |
|||
|
|||
//添加至数组
|
|||
startStop.push(priorWeekFirstDay.format('yyyy-MM-dd')); |
|||
startStop.push(priorWeekLastDay.format('yyyy-MM-dd')); |
|||
|
|||
return startStop; |
|||
}; |
|||
|
|||
/** |
|||
* 得到上季度的起始日期 |
|||
* year 这个年应该是运算后得到的当前本季度的年份 |
|||
* month 这个应该是运算后得到的当前季度的开始月份 |
|||
* */ |
|||
this.getPriorSeasonFirstDay = function(year, month) { |
|||
var quarterMonthStart = 0; |
|||
var spring = 0; //春
|
|||
var summer = 3; //夏
|
|||
var fall = 6; //秋
|
|||
var winter = 9; //冬
|
|||
//月份从0-11
|
|||
switch ( |
|||
month //季度的其实月份
|
|||
) { |
|||
case spring: |
|||
//如果是第一季度则应该到去年的冬季
|
|||
year--; |
|||
month = winter; |
|||
break; |
|||
case summer: |
|||
month = spring; |
|||
break; |
|||
case fall: |
|||
month = summer; |
|||
break; |
|||
case winter: |
|||
month = fall; |
|||
break; |
|||
} |
|||
|
|||
return new Date(year, month, 1); |
|||
}; |
|||
|
|||
/** |
|||
* 得到上季度的起止日期 |
|||
* **/ |
|||
this.getPreviousSeason = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//获得当前月份0-11
|
|||
var currentMonth = currentDate.getMonth(); |
|||
//获得当前年份4位年
|
|||
var currentYear = currentDate.getFullYear(); |
|||
//上季度的第一天
|
|||
var priorSeasonFirstDay = this.getPriorSeasonFirstDay(currentYear, currentMonth); |
|||
//上季度的最后一天
|
|||
var priorSeasonLastDay = new Date( |
|||
priorSeasonFirstDay.getFullYear(), |
|||
priorSeasonFirstDay.getMonth() + 2, |
|||
this.getMonthDays(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth() + 2), |
|||
); |
|||
//添加至数组
|
|||
startStop.push(priorSeasonFirstDay.format('yyyy-MM-dd')); |
|||
startStop.push(priorSeasonLastDay.format('yyyy-MM-dd')); |
|||
return startStop; |
|||
}; |
|||
|
|||
/** |
|||
* 得到去年的起止日期 |
|||
* **/ |
|||
this.getPreviousYear = function() { |
|||
//起止日期数组
|
|||
var startStop = new Array(); |
|||
//获取当前时间
|
|||
var currentDate = this.getCurrentDate(); |
|||
//获得当前年份4位年
|
|||
var currentYear = currentDate.getFullYear(); |
|||
currentYear--; |
|||
var priorYearFirstDay = new Date(currentYear, 0, 1); |
|||
var priorYearLastDay = new Date(currentYear, 11, 1); |
|||
//添加至数组
|
|||
startStop.push(priorYearFirstDay.format('yyyy-MM-dd')); |
|||
startStop.push(priorYearLastDay.format('yyyy-MM-dd')); |
|||
return startStop; |
|||
}; |
|||
|
|||
return this; |
|||
})(); |
|||
|
|||
Date.prototype.format = function(fmt) { |
|||
var o = { |
|||
'M+': this.getMonth() + 1, //月份
|
|||
'd+': this.getDate(), //日
|
|||
'h+': this.getHours(), //小时
|
|||
'm+': this.getMinutes(), //分
|
|||
's+': this.getSeconds(), //秒
|
|||
'q+': Math.floor((this.getMonth() + 3) / 3), //季度
|
|||
S: this.getMilliseconds(), //毫秒
|
|||
}; |
|||
if (/(y+)/.test(fmt)) { |
|||
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length)); |
|||
} |
|||
for (var k in o) { |
|||
if (new RegExp('(' + k + ')').test(fmt)) { |
|||
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)); |
|||
} |
|||
} |
|||
return fmt; |
|||
}; |