JS 如何获取当前上一个月、下一个月和月份所含天数

时间:2023-03-09 20:11:32
JS 如何获取当前上一个月、下一个月和月份所含天数

在数据报表查询中,经常需要设置查询的日期区间,如查询2018-02-01至2018-02-28的整月数据,这时需要提供快捷整月查询按钮:

如:JS 如何获取当前上一个月、下一个月和月份所含天数

一般日期年月日之间由“-”或者“/”等符合分割开,简单判断当前月份进行处理即可。另外,如何获取所选月份的最大天数是关键,这里可以借助js自带Date函数来处理,关键在于定位到所选月份的最后一天

关键代码如下:

function changeMonth(type) {
//获取当前输入框内的日期
var s_date = $("input[name='s_date']").val();
var e_date = $("input[name='e_date']").val(); var arr = s_date.split("-");
var year = parseInt(arr[0]),
month = parseInt(arr[1]),
day = parseInt(arr[2]); var year2 = year, month2 , day2;
//取上一个月
if(type == 'pre') {
month2 = month - 1;
if(month2 == 0) { //如当前是一月份
month2 = 12;
year2 = year - 1;
}
} else {
month2 = month + 1;
if(month2 == 13) {
month2 = 1;
year2 = year + 1;
}
} //输出所选月份的第一天
var start = year2 + "-" + month2 + "-" + "1";
//获取当前
var date = new Date(start);
var year = date.getFullYear();
var month = date.getMonth()+1;
var d = new Date(year,month,0); //下一个月的前一天 var end = year2 + "-" + month2 + "-" + d.getDate();
console.log(start,end); //设置当前时间input的值
$("input[name='s_date']").val(start);
$("input[name='e_date']").val(end);
}