日期:2014-05-16  浏览次数:20427 次

js获取某周、某月、上月、某季度的开始日期、结束日期及判断日期第几周

/**?
?* 获取某周、某月、上月、某季度的开始日期、结束日期及判断日期第几周?
?*/?

//格式化日期: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(paraYear,paraMonth){?????
??? var monthStartDate = new Date(paraYear, paraMonth, 1);??????
??? var monthEndDate = new Date(paraYear, paraMonth + 1, 1);??????
??? var?? days?? =?? (monthEndDate?? -?? monthStartDate)/(1000?? *?? 60?? *?? 60?? *?? 24);??????
??? return?? days;??????
}??????
????
//获得某周的开始日期?????
function getWeekStartDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {??????
??? var weekStartDate = new Date(paraYear, paraMonth, paraDay + 1 - paraDayOfWeek);??????
??? return formatDate(weekStartDate);?????
}??????
????
//获得某周的结束日期?????
function getWeekEndDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {??????
??? var weekEndDate = new Date(paraYear, paraMonth, paraDay + (7 - paraDayOfWeek));??????
??? return formatDate(weekEndDate);?????
}??????
????
//获得某月的开始日期?????
function getMonthStartDate(paraYear,paraMonth){?????
??? var monthStartDate = new Date(paraYear, paraMonth, 1);??????
??? return formatDate(monthStartDate);?????
}?????
????
//获得某月的结束日期?????
function getMonthEndDate(paraYear,paraMonth){
??? var monthEndDate = new Date(paraYear,paraMonth, getMonthDays(paraYear,paraMonth));??????
??? return formatDate(monthEndDate);?????
}?????
?
//获得上月开始时间??
function getLastMonthStartDate(paraYear, lastMonth){??
??? var lastMonthStartDate = new Date(paraYear, lastMonth, 1);??
??? return formatDate(lastMonthStartDate);????
}??
?
//获得上月结束时间??
function getLastMonthEndDate(paraYear, lastMonth, lastMonth){??
??? var lastMonthEndDate = new Date(paraYear, lastMonth, getMonthDays(lastMonth));??
??? return formatDate(lastMonthEndDate);????
}??
????
//获得某季度的开始日期?????
function getQuarterStartDate(paraYear,paraSeason){?????
??? switch (paraSeason){?????
??????? case '1' : return paraYear+"-01-01";
??????? case '2' : return paraYear+"-04-01";
??????? case '3' : return paraYear+"-07-01";
??????? case '4' : return paraYear+"-10-01";
??? }
}?????
????
//获得某季度的结束日期?????
function getQuarterEndDate(paraYear,paraSeason){?????
??? switch (paraSeason){?????
??? ?case '1' : return paraYear+"-03-31";
??? ?case '2' : return paraYear+"-06-30";
??? ?case '3' : return paraYear+"-09-30";
??? ?case '4' : return paraYear+"-12-31";
??? }???
}

?

//获取某年某周的开始日期
function getBeginDateOfWeek(paraYear, weekIndex){
??? var firstDay = GetFirstWeekBegDay(paraYear);
??? //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
??? var time=(weekIndex-1)*7*24*3600000;
?? ?var beginDay = firstDay;
??? //为日期对象 date 重新设置成时间 time
?? ?beginDay.setTime(firstDay.valueOf()+time);
??? return formatDate(beginDay);
}

?

//获取某年某周的结束日期
function getEndDateOfWeek(paraYear, weekIndex){
??? var firstDay = GetFirstWeekBegDay(paraYear);
?? ?//7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
??? var time=(weekIndex-1)*7*24*3600000;
??? var weekTime = 6*24*3600000;
??? var endDay = firstDay;
??? //为日期对象 date 重新设置成时间 time
?? ?endDay.setTime(firstDay.valueOf()+weekTime+time);
??? return formatDate(endDay);
}

?

//获取日期为某年的第几周
function GetWeekIndex(dateobj) {
??? var firstDay = GetFirstWeekBegDay(dateobj.getFullYear());
?? ?if (dateobj < firstDay) {
???