YYYYMMDD 形式で生年月日から年齢を計算します 質問する

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);

ベストアンサー1

これを試して。

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

フィドルhttp://jsfiddle.net/codeandcloud/n33RJ/

おすすめ記事