选择指定时间n个月后的前一天

选择指定时间n个月后的前一天(如2020.02.28一年后的前一天)

<el-date-picker format="yyyy-MM-dd" v-model="startTime" size="mini" @change="startToEnd(startTime,issue.guaranteePeriod)"
:picker-options="pickerOptions"></el-date-picker>
startToEnd(val, n) {//val为传入的时间值,n为指定的月份个数
          let dd = formatDate(new Date(val), "yyyy-MM-dd");//校验时间格式
          let ddd = formatDate(new Date(val), "yyyy-MM-dd");
          let str = dd.split("-");
          let d = new Date(str[0], str[1] - 1 + n, str[2]);
          let ds = formatDate(new Date(d), "yyyy-MM-dd");
          // 因为getMonth()获取的月份的值只能在0~11之间所以我们在进行setMonth()之前先给其减一
          if (ddd.split("-")[2] > 29) {//设置二月份的最后一天
            if (ds.split("-")[0] % 4) {
              if (ds.split("-")[1] === '03' && ds.split("-")[2] < 5) {
                d.setMonth(1)
                d.setDate(29)
              }
            } else {
              if (ds.split("-")[1] === '03' && ds.split("-")[2] < 5) {
                d.setMonth(1)
                d.setDate(30)
              }
            }
          }
          let yy1 = d.getFullYear(); //年2021
          let mm1 = d.getMonth() + 1; //月
          let dd1 = d.getDate() - 1; //日
          if (mm1 == "1" && dd1 == "0") {//设置1月1日的前一天
            yy1 = d.getFullYear() - 1;
            mm1 = "12";
            dd1 = "31";
          }
          if (dd1 == "0") {
            mm1 = parseInt(mm1) - 1;
            let new_date = new Date(yy1, mm1, 1);
            dd1 = new Date(new_date.getTime() - 1000 * 60 * 60 * 24).getDate();
          }
          if (mm1 < 10) {
            mm1 = "0" + mm1;
          }
          if (dd1 < 10) {
            dd1 = "0" + dd1;
          }
          this.endTime = yy1 + "-" + mm1 + "-" + dd1;
        }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值