javascript - 根据 YYYYMMDD 格式的出生日期计算年龄

标签 javascript date

给定格式 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 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;
}

我相信您的代码中唯一看起来粗糙的是 substr 部分。

fiddle :http://jsfiddle.net/codeandcloud/n33RJ/

关于javascript - 根据 YYYYMMDD 格式的出生日期计算年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22549811/

相关文章:

javascript - PHPStorm 配置 : How to remove background color on embedded html?

javascript - 当我按回车键时,无法登录

javascript - 从 toUTCString() 开始的日期

c# - 生成每周日期

R语言,统计一个月中的星期五

java - Java中日期到整数的转换

javascript - 选中后的复选框在 jquery 中失去监听器

javascript - jquery javascript 添加/删除按钮

javascript:window.self 属性的用途是什么?

mysql - SQL表将日期列转换为纪元