function choseDate(val) {
Date.prototype.format = function (fmt) {
var o = {
'M+': this.getMonth() + 1, //月份
'd+': this.getDate(), //日
'h+': this.getHours(), //小时
'm+': this.getMinutes(), //分
's+': this.getSeconds(), //秒
'q+': Math.floor((this.getMonth() + 3) / 3), //季度
S: this.getMilliseconds(), //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
}
}
return fmt;
};
var params;
// var date = new Date();
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay(); //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getYear(); //当前年
nowYear += nowYear < 2000 ? 1900 : 0; //
var lastMonthDate = new Date(); //上月日期
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
var lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();
//格式化日期:yyyy-MM-dd
function formatDate(date) {
var myyear = date.getFullYear();
var mymonth = date.getMonth() + 1;
var myweekday = date.getDate();
if (mymonth < 10) {
mymonth = '0' + mymonth;
}
if (myweekday < 10) {
myweekday = '0' + myweekday;
}
return myyear + '-' + mymonth + '-' + myweekday;
}
function getMonthDays(myMonth) {
var monthStartDate = new Date(nowYear, myMonth, 1);
var monthEndDate = new Date(nowYear, myMonth + 1, 1);
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
}
//获得本季度的开始月份
function getQuarterStartMonth() {
var quarterStartMonth = 0;
if (nowMonth < 3) {
quarterStartMonth = 0;
}
if (2 < nowMonth && nowMonth < 6) {
quarterStartMonth = 3;
}
if (5 < nowMonth && nowMonth < 9) {
quarterStartMonth = 6;
}
if (nowMonth > 8) {
quarterStartMonth = 9;
}
return quarterStartMonth;
}
function getDay(day) {
var today = new Date();
var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
today.setTime(targetday_milliseconds); //注意,这行是关键代码
var tYear = today.getFullYear();
var tMonth = today.getMonth();
var tDate = today.getDate();
tMonth = doHandleMonth(tMonth + 1);
tDate = doHandleMonth(tDate);
return tYear + '-' + tMonth + '-' + tDate;
}
function doHandleMonth(month) {
var m = month;
if (month.toString().length == 1) {
m = '0' + month;
}
return m;
}
// var flag = parseInt(params);
switch (val) {
case 1:
// 今日
var startStr = now.format('yyyy-MM-dd 00:00:00');
var endStr = now.format('yyyy-MM-dd 23:59:59');
params = {
startDate: startStr,
endDate: endStr,
};
break;
case 2:
// 本周
var start = getDay(-6);
var end = getDay(0);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 3:
// 本月
var monthStartDate = new Date(nowYear, nowMonth, 1);
var start = formatDate(monthStartDate);
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
var end = formatDate(monthEndDate);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 4:
// 本季度
var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
var start = formatDate(quarterStartDate);
var quarterEndMonth = getQuarterStartMonth() + 2;
var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
var end = formatDate(quarterStartDate);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 5:
// 本年
var start = now.format('yyyy-01-01 00:00:00');
var end = now.format('yyyy-12-31 23:59:59');
params = {
startDate: start,
endDate: end,
};
break;
case 6:
// 昨天
var start = getDay(-1);
var end = getDay(-1);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 7:
// 上周
var start = getDay(-12);
var end = getDay(-6);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 8:
// 上月
var monthStartDate = new Date(nowYear, nowMonth - 1, 1);
var start = formatDate(monthStartDate);
var monthEndDate = new Date(nowYear, nowMonth - 1, getMonthDays(nowMonth - 1));
var end = formatDate(monthEndDate);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 9:
// 明日
var start = getDay(1);
var end = getDay(1);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 10:
// 下周
var start = getDay(0);
var end = getDay(7);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
case 11:
// 下月
var monthStartDate = new Date(nowYear, nowMonth + 1, 1);
var start = formatDate(monthStartDate);
var monthEndDate = new Date(nowYear, nowMonth + 1, getMonthDays(nowMonth + 1));
var end = formatDate(monthEndDate);
params = {
startDate: start + ' 00:00:00',
endDate: end + ' 23:59:59',
};
break;
}
return params;
}
// 今日
console.log('今日', choseDate(1));
// 今日 { startDate: '2020-12-03 00:00:00', endDate: '2020-12-03 23:59:59' }
// 本周
console.log('本周', choseDate(2));
// 本周 { startDate: '2020-11-27 00:00:00', endDate: '2020-12-03 23:59:59' }
// 本月
console.log('本月', choseDate(3));
// 本月 { startDate: '2020-12-01 00:00:00', endDate: '2020-12-31 23:59:59' }
console.log('本季度', choseDate(4));
// 本季度 { startDate: '2020-10-01 00:00:00', endDate: '2020-12-31 23:59:59' }
console.log('本年', choseDate(5));
// 本年 { startDate: '2020-01-01 00:00:00', endDate: '2020-12-31 23:59:59' }
// 昨日
console.log('昨日', choseDate(6));
// 昨日 { startDate: '2020-12-02 00:00:00', endDate: '2020-12-02 23:59:59' }
// 上周
console.log('上周', choseDate(7));
// 上周 { startDate: '2020-11-21 00:00:00', endDate: '2020-11-27 23:59:59' }
// 上月
console.log('上月', choseDate(8));
// 上月 { startDate: '2020-11-01 00:00:00', endDate: '2020-11-30 23:59:59' }
// 明日
console.log('明日', choseDate(9));
// 明日 { startDate: '2020-12-04 00:00:00', endDate: '2020-12-04 23:59:59' }
// 下周
console.log('下周', choseDate(10));
// 下周 { startDate: '2020-12-03 00:00:00', endDate: '2020-12-10 23:59:59' }
// 下月
console.log('下月', choseDate(11));
// 下月 { startDate: '2021-01-01 00:00:00', endDate: '2021-01-31 23:59:59' }

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部