以YYYYMMDD格式计算给定生日的年龄

给定YYYYMMDD格式的出生日期,如何计算以岁为单位的年龄?是否可以使用该Date()功能?

我正在寻找比现在使用的解决方案更好的解决方案:

var dob = '19800810';

var year = Number(dob.substr(0, 4));

var month = Number(dob.substr(4, 2)) - 1;

var day = Number(dob.substr(6, 2));

var today = new Date();

var age = today.getFullYear() - year;

if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {

age--;

}

alert(age);

回答:

function _calculateAge(birthday) { // birthday is a date

var ageDifMs = Date.now() - birthday.getTime();

var ageDate = new Date(ageDifMs); // miliseconds from epoch

return Math.abs(ageDate.getUTCFullYear() - 1970);

}

这也存在精度问题,因此也不能完全信任。它可能会关闭几个小时,有时会关闭,也可能会在夏令时关闭(取决于时区)。

相反,如果精度非常重要,我建议为此使用库。另外@Naveenspost,可能是最准确的,因为它不依赖于一天中的时间。


以上是 以YYYYMMDD格式计算给定生日的年龄 的全部内容, 来源链接: utcz.com/qa/432603.html

回到顶部