js 获取日期(昨天、上一周、上一月、上一年或去年)

下面代码是亲测且可用的,计算上一周时间确实费了不少劲,因为要考虑跨月和跨年的情况:

$("#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);

});

猜你喜欢

转载自www.cnblogs.com/aldcd/p/11655229.html