jquery 计算日期
function _calculateDate(wantDate){
var newWantDate = {};
var currentTime = new Date();
var currentDate = timeStamp2String(currentTime);
if (wantDate == "thisDay") {
newWantDate[0] = currentDate;
newWantDate[1] = currentDate;
return newWantDate;
}
var lastDate = timeStamp2String(_addDate('4','-1',currentTime));
if (wantDate == "lastDay") {
newWantDate[0] = lastDate;
newWantDate[1] = lastDate;
return newWantDate;
}
var currentWeek = _getCurrentWeek();
var currentWeekFirstDate = timeStamp2String(currentWeek[0]);
var currentWeekEndDate = timeStamp2String(currentWeek[1]);
if (wantDate == "thisWeek") {
newWantDate[0] = currentWeekFirstDate;
newWantDate[1] = currentWeekEndDate;
return newWantDate;
}
var lastWeekFirstDate = timeStamp2String(_addDate('4','-7',currentWeek[0]));
var lastWeekEndDate = timeStamp2String(_addDate('4','-1',currentWeek[0]));
if (wantDate == "lastWeek") {
newWantDate[0] = lastWeekFirstDate;
newWantDate[1] = lastWeekEndDate;
return newWantDate;
}
var last2WeekFirstDate = timeStamp2String(_addDate('4','-14',currentWeek[0]));
if (wantDate == "last2Week") {
newWantDate[0] = last2WeekFirstDate;
newWantDate[1] = lastWeekEndDate;
return newWantDate;
}
var datePartArray = currentDate.split('-');
var curMonthFirstDay = new Date(datePartArray[0],datePartArray[1]-1);
var curMonthFirstDate = timeStamp2String(curMonthFirstDay);
var nextMonthFirstDay = _addDate('5','1',curMonthFirstDay);
var curMonthEndDay = new Date(nextMonthFirstDay.getTime()-1);
var curMonthEndDate = timeStamp2String(curMonthEndDay);
if (wantDate == "thisMonth") {
newWantDate[0] = curMonthFirstDate;
newWantDate[1] = curMonthEndDate;
return newWantDate;
}
var lastMonthFirstDay = _addDate('5','-1',curMonthFirstDay);
var lastMonthFirstDate = timeStamp2String(lastMonthFirstDay);
var lastMonthEndDay = new Date(curMonthFirstDay.getTime()-1);
var lastMonthEndDate = timeStamp2String(lastMonthEndDay);
if (wantDate == "lastMonth") {
newWantDate[0] = lastMonthFirstDate;
newWantDate[1] = lastMonthEndDate;
return newWantDate;
}
var last3MonthFirstDay = _addDate('5','-2',curMonthFirstDay);
var last3MonthFirstDate = timeStamp2String(last3MonthFirstDay);
if (wantDate == "last3Month") {
newWantDate[0] = last3MonthFirstDate;
newWantDate[1] = curMonthEndDate;
return newWantDate;
}
var last6MonthFirstDay = _addDate('5','-5',curMonthFirstDay);
var last6MonthFirstDate = timeStamp2String(last6MonthFirstDay);
if (wantDate == "last6Month") {
newWantDate[0] = last6MonthFirstDate;
newWantDate[1] = curMonthEndDate;
return newWantDate;
}
var last12MonthFirstDay = _addDate('5','-11',curMonthFirstDay);
var last12MonthFirstDate = timeStamp2String(last12MonthFirstDay);
if (wantDate == "last12Month") {
newWantDate[0] = last12MonthFirstDate;
newWantDate[1] = curMonthEndDate;
return newWantDate;
}
var nnextFirstDay=_addDate('5','2',curFirstDay);
var nextEndDay= new Date(nnextFirstDay.getTime()-1);
}
function _getCurrentWeek(){
var currentDate = new Date();
var week=currentDate.getDay();
var millisecond=1000*60*60*24;
var minusDay=week!=0?week-1:6;
var monday=new Date(currentDate.getTime()-(minusDay*millisecond));
var sunday=new Date(monday.getTime()+(6*millisecond));
var thisWeek = {};
thisWeek[0] = monday;
thisWeek[1] = sunday;
return thisWeek;
}
function timeStamp2String(time){
var datetime = new Date();
datetime.setTime(time);
var year = datetime.getFullYear();
var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
return year + "-" + month + "-" + date;
}
function _addDate(type, NumDay, vdate){
var date=new Date(vdate);
type = parseInt(type);
var lIntval = parseInt(NumDay);
switch(type){
case 7 :
date.setYear(date.getYear() + lIntval);
break;
case 6 :
date.setMonth(date.getMonth() + (lIntval * 3) );
break;
case 5 :
date.setMonth(date.getMonth() + lIntval);
break;
case 4 :
date.setDate(date.getDate() + lIntval);
break;
case 3 :
date.setHours(date.getHours() + lIntval);
break;
case 2 :
date.setMinutes(date.getMinutes() + lIntval);
break;
case 1 :
date.setSeconds(date.getSeconds() + lIntval);
break;
default:
}
return date;
}