function getAge(birthYearMonthDay) {
//birthYearMonthDay必须为"1995/6/15"这种字符串格式,不可为"2020-6-15",这种格式在Safari中会报错
const birthDate = new Date(birthYearMonthDay);
const momentDate = new Date();
momentDate.setHours(0, 0, 0, 0); //因为new Date()出来的时间是当前的时分秒。我们需要把时分秒重置为0。使后面时间比较更精确
const thisYearBirthDate = new Date(
momentDate.getFullYear(),
birthDate.getMonth(),
birthDate.getDate()
);
const aDate = thisYearBirthDate - birthDate;
const bDate = momentDate - birthDate;
let tempAge = momentDate.getFullYear() - birthDate.getFullYear();
let age = null;
if (bDate < aDate) {
tempAge = tempAge - 1;
age = tempAge < 0 ? 0 : tempAge;
} else {
age = tempAge;
}
return age;
}
比如我1995年6月15日出生。今天是2020年6月21日。
那么2020年6月15日 减去 1995年6月15日 我们记为a
今天是2020年6月21日 减去1995年6月15日 我们记为b
然后2020减去1995,年龄记为c
如果b > a,那么方法直接返回c
如果b < a,那么方法返回c - 1