获取某年某月前后几个月的日期

本文分享了如何实现JavaScript函数来获取当前日期前两个月、当前月和后一个月的日期。通过调整参数,算法能够适应不同月份(包括2月)的情况,避免了使用固定天数可能导致的问题。作者在实现过程中遇到了2月特殊性的挑战,最终通过改进算法成功解决。

获取某年某月前后几个月的日期

需求

在这里插入图片描述
单选按钮
显示当前 前两个月,当前月,后一个月

实现

      function getMonth(currentYear,currentMonth,num){
        let time={};
        let diff= currentMonth-num
        if( currentMonth- num <= 0 ){
            time.value = `${currentYear-1}-${ diff+12 < 10 ? '0':'' }${diff+12}`
        }else if( currentMonth - num > 12 ){
            time.value = `${currentYear+1}-${ diff-12 < 10 ? '0':'' }${diff-12}`
        }else{
            time.value = `${currentYear}-${ diff < 10  ? '0':'' }${diff}`
        }
        time.active=false
        time.name=time.value.split('-')[1]
        return time
      }
      let dataList = []
      let currentMonth =  new Date().getMonth()+1
      let currentYear = new Date().getFullYear()
      let monthArr= [2,1,0,-1]
      monthArr.map(item=>{
          dataList.push(getMonth(currentYear,currentMonth,item))
      })
      console.log(dataList)

在这里插入图片描述

心得

开始写的时候用一个月31天的时间戳去算前两个月的时间,忽略了特殊月份2月份,之后决定采用如上算法 解决了这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值