/** * 针对时间的工具类 */var DateTimeUtil = 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); //本周起始时间//添加本周最后一天时间startStop.push(sunday); //本周终止时间//返回return startStop;};/**** 获得本月的起止时间*/this.getCurrentMonth = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前月份0-11var 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);startStop.push(lastDay);//返回return startStop;};/*** 得到本季度开始的月份* @param month 需要计算的月份***/this.getQuarterSeasonStartMonth = function (month) {var quarterMonthStart = 0;var spring = 0; //春var summer = 3; //夏var fall = 6; //秋var winter = 9; //冬//月份从0-11if (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-31var relativeDate = new Date(year, month, 1);//获得当前月份0-11var 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-11var 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);startStop.push(quarterSeasonEndDate);//返回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);startStop.push(currentYearLastDate);//返回return startStop;};/*** 返回上一个月的第一天Date类型* @param year 年* @param month 月**/this.getPriorMonthFirstDay = function (year, month) {//年份为0代表,是本年的第一月,所以不能减if (month == 0) {month = 11;//月份为上年的最后月份year--; //年份减1return new Date(year, month, 1);}//否则,只减去月份month--;return new Date(year, month, 1); ;};/*** 获得上一月的起止日期* ***/this.getPreviousMonth = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前月份0-11var 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);startStop.push(priorMonthLastDay);//返回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);startStop.push(priorWeekLastDay);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-11switch (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-11var 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);startStop.push(priorSeasonLastDay);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);startStop.push(priorYearLastDay);return startStop;};};
1200字范文,内容丰富有趣,写作的好帮手!