选择指定时间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) {
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");
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();
let mm1 = d.getMonth() + 1;
let dd1 = d.getDate() - 1;
if (mm1 == "1" && dd1 == "0") {
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;
}