<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
const arr = [
{
advanced_download: 0,
anonymous_query: 13,
date: "2019-08-06",
file_download: 0,
gbt_download: 0,
gbt_query: 8 ,
user_query: 10 ,
}
]
function fillAllDays(arr,month){
const hasData = {};
arr.map((item,index)=> {
hasData[item.date] = index;
});
const cdate = new Date(); //当前日期
const cyear = cdate.getFullYear(); //当前年份
const cmonth = cdate.getMonth() + 1; //当前月份
const day = cdate.getDate(); //当前日
let syear = cyear - Math.floor(month / 12); //起始年份
let smonth = cmonth - (month % 12) + 1; //起始月份
if(smonth == 0){ //处理边界
syear -= 1;
smonth = 12;
}
console.log(syear,smonth,"start")
let ar = [];
for(let i = 0;i< month;i++){
let sm = smonth;
let sy = syear;
if(i !== 0){
const cm = sm + i;
sy += Math.floor(cm / 12);
sm = cm%12;
if(sm === 0){
sy-=1
sm = 12;
}
}
let len = getMonthLen(sy,sm);
if(sy === cyear && sm === cmonth ){ //当前月份,截止到今天
len = day;
}
for(let j = 1;j<=len;j++){
const day = j < 10? '0' +j: j.toString();
const smString = sm< 10? '0' +sm: sm.toString();
const date = sy.toString() + '-' + smString +'-' + day;
const obj = hasData[date] >= 0? arr[hasData[date]] : {
date,
}
ar.push(obj);
}
}
console.log(ar,"arrr")
return ar;
function getMonthLen(year,mon){
return new Date(year,mon,0).getDate();
}
}
fillAllDays(arr,25);
</script>
</body>
</html>