当前位置: 代码迷 >> 综合 >> JS 获取n个月后的日期(使用在vue 框架)
  详细解决方案

JS 获取n个月后的日期(使用在vue 框架)

热度:35   发布时间:2023-10-01 04:15:06.0
<template>  <el-form-item label="合同到期日期:" prop="endDate"><el-date-picker type="date" placeholder="年-月-日" v-model="contractInfo.endDate" :value="getYmd(36)"          style="width: 70%"></el-date-picker></el-form-item>  <el-form-item label="三个月满:"><el-date-picker type="date" placeholder="年-月-日" v-model="contractInfo.threeMonthDate" :value="getYmd(3)" style="width: 70%"></el-date-picker></el-form-item> </template>computed: {getYmd() {// 计算属性使用闭包传参return  (n) =>{let val = this.contractInfo.startDate;if(!val) return;if(n === 3){this.contractInfo.threeMonthDate = this.computeYmd(val, 3);}if(n === 36){this.contractInfo.endDate = this.computeYmd(val, 36);}}}
},methods:{// 获取给定日期的 n个月后的日期  给定日期格式如:val = 2019-02-26; n = 多少个月computeYmd(val, n) {let str = val.split('-');let d = new Date(str[0], str[1], str[2]);// 因为getMonth()获取的月份的值只能在0~11之间所以我们在进行setMonth()之前先给其减一d.setMonth((d.getMonth()-1) + n);let yy1 = d.getFullYear();let mm1 = d.getMonth()+1;let dd1 = d.getDate()-1;if(dd1 == '00'){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;}return yy1 + '-' + mm1 + '-' + dd1;}
}
  相关解决方案