根据总月数获取年龄
export const getAgeTxt = (value: string | number = 0) => {
return Number(value) < 12 ? value + '月' : parseInt((Number(value) / 12).toString()) + '岁'
}
根据年-月-日 获取年龄
//根据年-月-日 获取年龄
export function getAge(strBirthday: string) {
let returnAge
let returnAgeTxt
let strBirthdayArr = strBirthday.split('-')
let birthYear = strBirthdayArr[0]
let birthMonth = strBirthdayArr[1]
let birthDay = strBirthdayArr[2]
let d = new Date()
let nowYear = d.getFullYear()
let nowMonth = d.getMonth() + 1
let nowDay = d.getDate()
if (Number(nowYear) === Number(birthYear)) {
returnAge = 0 //同年 则为0岁
//返回月
returnAgeTxt = [12 - Number(birthMonth), '月']
} else {
let ageDiff = nowYear - Number(birthYear) //年之差
if (ageDiff > 0) {
if (Number(nowMonth) === Number(birthMonth)) {
let dayDiff = nowDay - Number(birthDay) //日之差
if (dayDiff < 0) {
returnAge = ageDiff - 1
} else {
returnAge = ageDiff
}
} else {
let monthDiff = nowMonth - Number(birthMonth) //月之差
if (monthDiff < 0) {
returnAge = ageDiff - 1
} else {
returnAge = ageDiff
}
}
returnAgeTxt = [returnAge, '岁']
} else {
returnAge = -1 //返回-1 表示出生日期输入错误 晚于今天
returnAgeTxt = [0, '岁']
}
}
return { returnAge, returnAgeTxt } //返回周岁年龄
}
使用:
getAge(patientBirthdate).returnAgeTxt.join().replace(',', '')
const returnAgeTxt = getAge(str).returnAgeTxt
obj.age = returnAgeTxt[0]
setAgeText(returnAgeTxt[1])