在数据报表查询中,经常需要设置查询的日期区间,如查询2018-02-01至2018-02-28的整月数据,这时需要提供快捷整月查询按钮:
如:
一般日期年月日之间由“-”或者“/”等符合分割开,简单判断当前月份进行处理即可。另外,如何获取所选月份的最大天数是关键,这里可以借助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); ???}
JS 如何获取当前上一个月、下一个月和月份所含天数
原文地址:https://www.cnblogs.com/chq3272991/p/9197931.html