//传入年龄、年龄类型,返回出生日期
Date.prototype.DateAdd = function (strInterval, Number) {
var dtTmp = this;
switch (strInterval) {
case 's': return new Date(Date.parse(dtTmp) + (1000 * Number));
case 'n': return new Date(Date.parse(dtTmp) + (60000 * Number));
case 'h': return new Date(Date.parse(dtTmp) + (3600000 * Number));
case 'd': return new Date(Date.parse(dtTmp) + (86400000 * Number));
case 'w': return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
case 'q': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'm': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'y': return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
}
}
Date.prototype.DateDiff = function (strInterval, dtEnd) {
var dtStart = this;
if (typeof dtEnd == 'string')
{
dtEnd = StringToDate(dtEnd);
}
switch (strInterval) {
case 's': return parseInt((dtEnd - dtStart) / 1000);
case 'n': return parseInt((dtEnd - dtStart) / 60000);
case 'h': return parseInt((dtEnd - dtStart) / 3600000);
case 'd': return parseInt((dtEnd - dtStart) / 86400000);
case 'w': return parseInt((dtEnd - dtStart) / (86400000 * 7));
case 'm': return (dtEnd.getMonth() + 1) + ((dtEnd.getFullYear() - dtStart.getFullYear()) * 12) - (dtStart.getMonth() + 1);
case 'y': return dtEnd.getFullYear() - dtStart.getFullYear();
}
}
getBirthdayByIdNO(IdNO) {
let birthday = "";
if (IdNO.length == 18) {
birthday = IdNO.substr(6, 8);
return birthday.replace(/(.{4})(.{2})/, "$1-$2-");
} else if (IdNO.length == 15) {
birthday = "19" + IdNO.substr(6, 6);
return birthday.replace(/(.{4})(.{2})/, "$1-$2-");
} else {
return "";
}
},
getSexByIdNO(IdNO) {
if (IdNO.length == 18) {
return IdNO.charAt(16) % 2 == 0 ? 10301002 : 10301001;
} else if (IdNO.length == 15) {
return IdNO.charAt(14) % 2 == 0 ? 10301002 : 10301001;
} else {
return "";
}
},
handleAge() {
if (this.form.age && this.form.ageUnitId) {
const bir = this.birAge(this.form.age, this.form.ageUnitId);
this.$set(this.form, "birthDay", bir);
}
},
birAge(_YearAge, _YearType) {
var CurrentDate = new Date();
var _Birthday;
if (_YearType == 10112101) {
_Birthday = CurrentDate.DateAdd("y", _YearAge * -1);
} else if (_YearType == 10112102) {
_Birthday = CurrentDate.DateAdd("m", _YearAge * -1);
} else if (_YearType == 10112103) {
_Birthday = CurrentDate.DateAdd("d", _YearAge * -1);
} else if (_YearType == 10112104) {
_Birthday = CurrentDate.DateAdd("h", _YearAge * -1);
} else if (_YearType == 10112105) {
_Birthday = CurrentDate.DateAdd("n", _YearAge * -1);
}
return this.fnGetReturnFormatDate(_Birthday);
},
fnGetReturnFormatDate(_Date) {
var _NewDate = new Date(Date.parse(_Date.toString().replace(/-/g, "/")));
var _NewYear = _NewDate.getFullYear();
var _NewMonth = _NewDate.getMonth() + 1;
var _NewDay = _NewDate.getDate();
_NewMonth = _NewMonth * 1 >= 10 ? _NewMonth : "0" + _NewMonth;
_NewDay = _NewDay * 1 >= 10 ? _NewDay : "0" + _NewDay;
return _NewYear + "-" + _NewMonth + "-" + _NewDay;
},
fnGetYearTypeByBirthday(_BirthDay) {
var _ReturnYear = 0,
_ReturnTypeID = 0,
_ReturnTypeName = 0,
_IsDate = 0;
var CurrentDate = new Date();
var BirthDay = new Date(
Date.parse(_BirthDay.toString().replace(/-/g, "/"))
);
var _AgeDiff = CurrentDate.DateDiff("d", BirthDay) * -1;
if (_AgeDiff < 60) {
_ReturnYear = _AgeDiff;
_ReturnTypeID = 10112103;
_ReturnTypeName = "天";
} else {
_AgeDiff = CurrentDate.DateDiff("y", BirthDay) * -1;
if (CurrentDate.getMonth() < BirthDay.getMonth()) {
_AgeDiff = _AgeDiff - 1;
} else {
if (
CurrentDate.getMonth() == BirthDay.getMonth() &&
CurrentDate.getDate() < BirthDay.getDate()
) {
_AgeDiff = _AgeDiff - 1;
}
}
if (_AgeDiff < 1) {
if (CurrentDate.getMonth() == BirthDay.getMonth()) {
_ReturnYear = "11";
_ReturnTypeID = 10112102;
_ReturnTypeName = "个月";
} else {
if (CurrentDate.getYear() == BirthDay.getYear()) {
_ReturnYear = CurrentDate.getMonth() - BirthDay.getMonth();
} else {
_ReturnYear = CurrentDate.getMonth() + (12 - BirthDay.getMonth());
}
_ReturnTypeID = 10112102;
_ReturnTypeName = "个月";
}
} else {
_ReturnYear = _AgeDiff;
_ReturnTypeID = 10112101;
_ReturnTypeName = "岁";
}
}
_IsDate = 1;
var result = new Object();
result = {
YearOld: _ReturnYear,
YearTypeID: _ReturnTypeID,
YearTypeName: _ReturnTypeName,
IsDate: _IsDate,
};
return result;
},
handleBirthDay() {
if (this.form.birthDay) {
const c = this.fnGetYearTypeByBirthday(this.form.birthDay);
this.$set(this.form, "age", c.YearOld);
this.$set(this.form, "ageUnitId", c.YearTypeID);
}
},
handleCardNo() {
if (
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
this.form.idCardNo
)
) {
const a = this.getBirthdayByIdNO(this.form.idCardNo);
const b = this.getSexByIdNO(this.form.idCardNo);
const c = this.fnGetYearTypeByBirthday(a);
this.$set(
this.form,
"sexId",
this.sexs.filter((item) => item.id == b)[0].id
);
this.$set(this.form, "birthDay", a);
this.$set(this.form, "age", c.YearOld);
this.$set(this.form, "ageUnitId", c.YearTypeID);
}
},