项目要求实现这样的效果,年份从1990-当前年份往后50年,月份1-12,每月多少天(年份,月份不同导致天数不同)需要手动计算并加入数组中如此显示
onLoad(options) {
this.getDate()
},
getDate(){
const date = new Date()
const years = []
const months = []
const days = []
for (let y = 1990; y <= date.getFullYear()*1+50; y++) {
let obj = {};
obj.year = y
years.push(obj)
}
years.forEach((item,index)=>{
let arr = [];
for (let m = 1; m <= 12; m++) {
let obj = {};
obj.month = m
arr.push(obj)
}
item.months = arr
})
years.forEach((item,index)=>{
item.months.forEach((m,idx)=>{
let arr =[];
if(m.month==1 || m.month==3 || m.month==5 || m.month==7 || m.month==8 || m.month==10 || m.month==12){
for (let d = 1; d <= 31; d++) {
let obj = {}
obj.day = d
arr.push(obj)
}
m.days = arr
}else if(m.month==4 || m.month==6 || m.month==9 || m.month==11){
for (let d = 1; d <= 30; d++) {
let obj = {}
obj.day = d
arr.push(obj)
}
m.days = arr
}else{
if(item.year%4==0 && item.year%100!=0 || item.year%400==0){
for (let d = 1; d <= 28; d++) {
let obj = {}
obj.day = d
arr.push(obj)
}
m.days = arr
}else{
for (let d = 1; d <= 29; d++) {
let obj = {}
obj.day = d
arr.push(obj)
}
m.days = arr
}
}
})
console.log(years);
})
},
得到的年份数组如下