从出生日期获取年龄

IT技术 javascript jquery date
2021-02-20 10:00:48

可能的重复:
在 JavaScript 中计算年龄

在我的 JS 代码的某些点上,我有一个 jquery 日期对象,它是人的出生日期。我想根据他的出生日期计算一个人的年龄。

任何人都可以提供有关如何实现这一目标的示例代码。

3个回答

试试这个功能...

function calculate_age(birth_month,birth_day,birth_year)
{
    today_date = new Date();
    today_year = today_date.getFullYear();
    today_month = today_date.getMonth();
    today_day = today_date.getDate();
    age = today_year - birth_year;

    if ( today_month < (birth_month - 1))
    {
        age--;
    }
    if (((birth_month - 1) == today_month) && (today_day < birth_day))
    {
        age--;
    }
    return age;
}

或者

function getAge(dateString) 
{
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) 
    {
        age--;
    }
    return age;
}

[见演示。][1] [1]:http://jsfiddle.net/mkginfo/LXEHp/7/

非常有用的代码
2021-04-21 10:00:48
尝试了演示并给出了出生日期 1998 年 6 月 1 日(今天是 2016 年 11 月 2 日)。这意味着现在 18 岁的人。但它显示错误消息,年龄应该大于或等于 18。不准确因此投票否决。
2021-04-23 10:00:48
很酷!看看你如何在 if (age--;) 中只有一个命令,括号是可选的,但仍然很好。我也将所有的 var 声明用逗号组合成一个分割,但总的来说,很棒的代码,非常有用。谢了哥们!
2021-05-09 10:00:48
如果年龄取自 axios json 数组以用于 v-for,如何?
2021-05-18 10:00:48

JsFiddle

您可以使用日期进行计算。

var birthdate = new Date("1990/1/1");
var cur = new Date();
var diff = cur-birthdate; // This is the difference in milliseconds
var age = Math.floor(diff/31557600000); // Divide by 1000*60*60*24*365.25
我想你忘了在最后一行乘以 24
2021-04-21 10:00:48
可能最好除以 1000*60*60*24*365.25
2021-04-22 10:00:48
呵呵卫生署尽管如此,JsFiddle 是对的。谢谢
2021-05-01 10:00:48
可能要删除最后一个 ')' 小括号。——
2021-05-05 10:00:48
单线: Math.floor((new Date() - new Date("1990-01-01")) / 31557600000)
2021-05-12 10:00:48
function getAge(birthday) {
    var today = new Date();
    var thisYear = 0;
    if (today.getMonth() < birthday.getMonth()) {
        thisYear = 1;
    } else if ((today.getMonth() == birthday.getMonth()) && today.getDate() < birthday.getDate()) {
        thisYear = 1;
    }
    var age = today.getFullYear() - birthday.getFullYear() - thisYear;
    return age;
}

JSFiddle

我认为“getDate()”在某些浏览器中引起了问题,我相信。
2021-04-23 10:00:48
比上面标记为答案的更准确。谢谢!!
2021-05-01 10:00:48