呐...为什么要封装这个方法呢?因为我现在在做的这个需求要求在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())
数组长这样的(截取了一小部分):
如果觉得《如何拿到当月的天数?》对你有帮助,请点赞、收藏,并留下你的观点哦!