下面代碼是親測且可用的,計算上一周時間確實費了不少勁,因為要考慮跨月和跨年的情況:
$("#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);
});