以年、月和日为单位计算年龄。以任何有效的日期字符串格式输入日期,例如“1952/09/28”、“Sep 29, 1952”、“09/28/1952”等。
接受 2 个参数 - 出生日期和计算年龄的日期。您可以将第二个参数留到今天的日期。返回具有年、月和日属性的对象年龄。
使用一年中 365.2425 天的太阳年值。
@parambirthDate 出生日期。@param ageAtDate 计算年龄的日期。今天的日期没有。@returns {{年:数字,月:数字,天:数字}}
function getAge(birthDate, ageAtDate) {
var daysInMonth = 30.436875; // Days in a month on average.
var dob = new Date(birthDate);
var aad;
if (!ageAtDate) aad = new Date();
else aad = new Date(ageAtDate);
var yearAad = aad.getFullYear();
var yearDob = dob.getFullYear();
var years = yearAad - yearDob; // Get age in years.
dob.setFullYear(yearAad); // Set birthday for this year.
var aadMillis = aad.getTime();
var dobMillis = dob.getTime();
if (aadMillis < dobMillis) {
--years;
dob.setFullYear(yearAad - 1); // Set to previous year's birthday
dobMillis = dob.getTime();
}
var days = (aadMillis - dobMillis) / 86400000;
var monthsDec = days / daysInMonth; // Months with remainder.
var months = Math.floor(monthsDec); // Remove fraction from month.
days = Math.floor(daysInMonth * (monthsDec - months));
return {years: years, months: months, days: days};
}