呐...为什么要封装这个方法呢?因为我现在在做的这个需求要求在echarts图下面加一个时间切换,有三种情况,如果选择年度,echarts图下面就显示1-12月,年度就显示1-4季度,月度就显示1-31天,所以就封装了这样一个方法来获取当月的天数。嘿嘿,弄出来的时候可开心啦!!!
getDays = date => {
date = moment(date).format('YYYY-MM') // 处理日期
let arr = ['01', '03', '05', '07', '08', '10', '12'] // 含有31天的月份
let data = []
let year = date?.split('-')[0] // 分割年
let mon = date?.split('-')[1] // 分割月
let day = arr.some(v => v === mon) ? 31 : (mon === '02' ? ((year / 400 === 0 || (year / 4 === 0 && year / 100 !== 0)) ? 29 : 28) : 30)
for (let i = day; i >= 0; i -= 1) { // 从31天开始减减减
data .push({ name: `${(day - i)}号`, key: `${day - i}` })
}
data = data .filter(v => v.key !== '0') // 把0踢出去!!
return data // 这就是我想要的数组啦!!
}
// 然后在需要获取这个天数的地方拿一下就OK啦
let daysData = this.getDays(new Date())
数组长这样的(截取了一小部分):