下面代码是亲测且可用的,计算上一周时间确实费了不少劲,因为要考虑跨月和跨年的情况:
$("#report").change(function () {
var report = $(this).val();
var beginTime = \'\';
var endTime = \'\';
var myDate = new Date();
if (report == \'daily\') {
// 获取昨天
myDate.setTime(myDate.getTime()-24*3600*1000);
beginTime = myDate.getFullYear()+"-" + (myDate.getMonth()+1) + "-" + myDate.getDate();
endTime = beginTime;
} else if (report == \'weekly\') {
// 获取上一周的开始和结束时间
var weekDate = new Date(myDate.getTime() - 7 * 24 * 3600 * 1000);// 计算开始时间用
var weekDate2 = new Date(myDate.getTime() - 7 * 24 * 3600 * 1000);// 计算结束时间用
var day = weekDate.getDay();
var time = weekDate.getDate()-day+(day===0?-6:1);
var startDate = new Date(weekDate.setDate(time));
beginTime = startDate.getFullYear()+\'-\'+(startDate.getMonth()+1)+\'-\'+startDate.getDate();
var endDate = new Date(weekDate2.setDate(time+6));
endTime = endDate.getFullYear()+\'-\'+(endDate.getMonth()+1)+\'-\'+endDate.getDate();
} else if (report == \'monthly\') {
// 获取上一月的开始和结束时间
var year = myDate.getFullYear();
var month = myDate.getMonth();
if (month === 0) {
month = 12;
year = year-1;
} else if (month < 10) {
month = \'0\'+month;
}
var monthDate = new Date(year, month, 0);
beginTime = year+\'-\'+month+\'-01\';
endTime = year+\'-\'+month+\'-\'+monthDate.getDate();
} else if (report == \'annual\') {
// 获取去年的开始和结束时间
var year = myDate.getFullYear()-1;
beginTime = year+\'-01-01\';
endTime = year+\'-12-31\';
}
$("#begintime").val(beginTime);
$("#endtime").val(endTime);
});