zoukankan      html  css  js  c++  java
  • 补全日期+补全图表的日期数据

    <!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>
    
    
    
  • 相关阅读:
    类的静态成员
    QT上的Mysql编程
    将博客搬至CSDN
    ARM开发板系统移植-----rootfs的制作
    ARM开发板系统移植-----kernel的编译
    ARM开发板系统移植-----u-boot的编译
    Linux 消息队列编程
    Linux 共享内存编程
    Linux 信号量同步编程
    Linux 信号量互斥编程
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/11396374.html
Copyright © 2011-2022 走看看