functiongetLast3Month(){var now =newDate()var year = now.getFullYear()var month = now.getMonth()+1//0-11表示1-12月var day = now.getDate()var dateObj ={}if(parseInt(month)<10){
month ='0'+ month
}if(parseInt(day)<10){
day ='0'+ day
}
dateObj.now = year +'-'+ month +'-'+ day
if(parseInt(month)==1){//如果是1月份,则取上一年的10月份
dateObj.last =parseInt(year)-1+'-10-'+ day
return dateObj
}if(parseInt(month)==2){//如果是2月份,则取上一年的11月份
dateObj.last =parseInt(year)-1+'-11-'+ day
return dateObj
}if(parseInt(month)==3){//如果是3月份,则取上一年的12月份
dateObj.last =parseInt(year)-1+'-12-'+ day
return dateObj
}var preSize =newDate(year,parseInt(month)-3,0).getDate()//开始时间所在月的总天数if(preSize <parseInt(day)){// 开始时间所在月的总天数<本月总天数,比如当前是5月30日,在2月中没有30,则取下个月的第一天(3月1日)为开始时间let resultMonth =parseInt(month)-2<10?'0'+parseInt(month)-2:parseInt(month)-2
dateObj.last = year +'-'+ resultMonth +'-01'return dateObj
}if(parseInt(month)<=10){
dateObj.last = year +'-0'+(parseInt(month)-3)+'-'+ day
return dateObj
}else{
dateObj.last = year +'-'+(parseInt(month)-3)+'-'+ day
return dateObj
}}
getDayAll(starDay, endDay):获取开始时间和结束时间内的所有日期
functiongetDayAll(starDay, endDay){var arr =[]var dates =[]// 设置两个日期UTC时间var db =newDate(starDay)var de =newDate(endDay)// 获取两个日期GTM时间var s = db.getTime()-24*60*60*1000var d = de.getTime()-24*60*60*1000// 获取到两个日期之间的每一天的毫秒数for(var i = s; i <= d;){
i = i +24*60*60*1000
arr.push(parseInt(i))}// 获取每一天的时间 YY-MM-DDfor(var j in arr){var time =newDate(arr[j])var year = time.getFullYear(time)var mouth = time.getMonth()+1>=10? time.getMonth()+1:'0'+(time.getMonth()+1)var day = time.getDate()>=10? time.getDate():'0'+ time.getDate()// year + '-' +varYYMMDD= year +'-'+ mouth +'-'+ day
dates.push(YYMMDD)}
dates.pop()return dates
}
使用
const result =getLast3Month(Date.now())// 获取近三个月所有日期const dateRange =getDayAll(result.last, result.now)
console.log(dateRange)
getLast3Month():获取近三个月的开始时间和结束时间function getLast3Month() { var now = new Date() var year = now.getFullYear() var month = now.getMonth() + 1 //0-11表示1-12月 var day = now.getDate() var dateObj = {} if (parseInt(month) < 10) { month = '0' +