js动态计算n年,或n月,或n天之后的日期

js动态计算n年或者n月或者n天之后的日期

由于需要动态计算日期并兼容ios手机日期格式返回使用 ‘YYYY/MM/DD’ 的格式,这属于借鉴并自己整理总结的三种方法,可能并不是很完善,希望有更好的方法的小伙伴一起分享一起完善
n年之后的日期
 getAfterNYear(year){
        //year代表几年  this.startDate 代表开始日期
        let time = new Date(this.startDate);
        let y = time.getFullYear()+year;
        let m = time.getMonth() + 1
        let d = time.getDate();
        //考虑二月份场景,若N年后的二月份日期大于该年的二月份的最后一天,则取该年二月份最后一天
        if(m == '02' || m == 2){
          var monthEndDate = new Date(y ,m,0).getDate();
          if(parseInt(d) > monthEndDate){//为月底时间
            //取两年后的二月份最后一天
            d = monthEndDate;
          }
        }
        let date=y + "/" + m + "/" + d
        return moment(date).format('YYYY/MM/DD HH:mm:ss');
      },

n月之后的日期

Month(n) { // n个月后
        let time=this.startDate || this.productObj.endDate
        let startTime = time.replace(/-/g,'/');
		let s=startTime.split("/")
        var yy = parseInt(s[0]);
        var mm = parseInt(s[1] - 1);
        var dd = parseInt(s[2]);
        var dt = new Date(yy, mm, dd);
        dt.setMonth(dt.getMonth() + n);
        if ((dt.getFullYear() * 12 + dt.getMonth()) > (yy * 12 + mm + n)) {
          dt = new Date(dt.getFullYear(), dt.getMonth(), 0);
        }
        var year = dt.getFullYear();
        var month = dt.getMonth() + 1;
        var days = dt.getDate();
        var dd = year + "-" + month + "-" + days;
        return moment(dd).format('YYYY/MM/DD HH:mm:ss');
      },

n天之后的日期

GetDay(day) {
     //day代表几年  this.startDate 代表开始日期
        let time=new Date(this.startDate)
        time.setDate(time.getDate() + day);//获取Day天后的日期
        var y = time.getFullYear();
        var m = time.getMonth() + 1;//获取当前月份的日期
        var d = time.getDate();
        let date=y + "/" + m + "/" + d
        return moment(date).format('YYYY/MM/DD HH:mm:ss');
      },

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值