// 计算日期
function _calculateDate(wantDate){
var newWantDate = {};
var currentTime = new Date();
// 今日
var currentDate = timeStamp2String(currentTime);
if (wantDate == "thisDay") {
newWantDate[0] = currentDate;
newWantDate[1] = currentDate;
return newWantDate;
}
//alert(currentDate);
// 昨日
var lastDate = timeStamp2String(_addDate('4','-1',currentTime));
if (wantDate == "lastDay") {
newWantDate[0] = lastDate;
newWantDate[1] = lastDate;
return newWantDate;
}
//alert(lastDate);
var currentWeek = _getCurrentWeek();
// 本周第一天
var currentWeekFirstDate = timeStamp2String(currentWeek[0]);
//alert(currentWeekFirstDate)
// 本周最后一天
var currentWeekEndDate = timeStamp2String(currentWeek[1]);
//alert(currentWeekEndDate)
if (wantDate == "thisWeek") {
newWantDate[0] = currentWeekFirstDate;
newWantDate[1] = currentWeekEndDate;
return newWantDate;
}
// 上周第一天
var lastWeekFirstDate = timeStamp2String(_addDate('4','-7',currentWeek[0]));
//alert(lastWeekFirstDate)
// 上周最后一天
var lastWeekEndDate = timeStamp2String(_addDate('4','-1',currentWeek[0]));
//alert(lastWeekEndDate)
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);
//alert(curMonthFirstDate);
//下月开始的第一天
var nextMonthFirstDay = _addDate('5','1',curMonthFirstDay);
//本月最后一天
var curMonthEndDay = new Date(nextMonthFirstDay.getTime()-1);
var curMonthEndDate = timeStamp2String(curMonthEndDay);
//alert(curMonthEndDate);
if (wantDate == "thisMonth") {
newWantDate[0] = curMonthFirstDate;
newWantDate[1] = curMonthEndDate;
return newWantDate;
}
// 上月开始的第一天
var lastMonthFirstDay = _addDate('5','-1',curMonthFirstDay);
var lastMonthFirstDate = timeStamp2String(lastMonthFirstDay);
//alert(lastMonthFirstDate);
// 上月最后一天
var lastMonthEndDay = new Date(curMonthFirstDay.getTime()-1);
var lastMonthEndDate = timeStamp2String(lastMonthEndDay);
//alert(lastMonthEndDate);
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();
//返回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();
//var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
//var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
//var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
//return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
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;
}