1.根据日期算年龄
function mymethod(birthday){
if(birthday){
var str = birthday
birthday=birthday.split('-');
let date = new Date()
let today = [date.getFullYear(), date.getMonth() + 1, date.getDate()]
let age = today.map((val, index) => {
return val - birthday[index]
})
if (age[2] < 0) {
let curMonth = new Date(today[0], today[1], 0)
age[1]--
age[2] += curMonth.getDate()
}
if (age[1] < 0) {
age[0]--
age[1] += 12
}
console.log('出生日期:' + str + " 岁数:" + age[0]+'岁'+age[1]+'月'+age[2]+'天');
}
}
mymethod('2020-12-06')
2.根据年龄算日期
function myfunction(ageYear,ageMonth,ageDay){//根据年龄算日期
var subYear = parseInt(ageYear)
var subMonth = parseInt(ageMonth)
var subDay = parseInt(ageDay)
var now = new Date()
var nowYear = now.getFullYear()
var nowMonth = now.getMonth()+1
var nowDay = now.getDate()
var day = nowDay - subDay
var month = nowMonth - subMonth
var year = nowYear - subYear
if(day<=0){ // 获得上月的天数
var lastMonth = nowMonth - 1
var lastMonthOfYear = nowYear
if(lastMonth<=0){
lastMonth =lastMonth + 12 //(lastMonth + 12) % 12
lastMonthOfYear = lastMonthOfYear - 1
}
day = day + new Date(lastMonthOfYear, lastMonth, 0).getDate()
month = month - 1
}
if(month<=0){
month =month + 12 //(month + 12) % 12
year--
}
if(month<10){
month='0'+month
}
if(day<10){
day='0'+day
}
console.log(year+'-'+month+'-'+day)
}
myfunction(1,10,20)
感谢:blog.csdn.net/weixin_5169…