Im пытаясь вычислить дату пользователя, но его не вычисляя правильный путьJavascript - Вычислить возраст
вот мой код
var cpr = cprValue.toString();
//cpr is = 0102907896
var dd = cpr.substr(0, 2); // 01
var mm = cpr.substr(2, 2); // 02
var yy = cpr.substr(4, 2); // 90
//Calculate if 90 is > 50
if (yy>50) {
var year = 1900;
} else {
var year = 2000;
}
var curDate = new Date();
var curYear = curDate.getUTCFullYear(),
curMonth = curDate.getUTCMonth(),
curDay = curDate.getUTCDate();
var myAge = curYear % year;
if (curMonth < mm && curDay < dd || curMonth < mm && curDay === dd || curMonth == mm && `curDay < dd) {`
myAge -= 1;
}
console.log(myAge);
Мой выход 13, но она должна быть 24
НО
, если я изменить дд, мм, уу и жестко его, как это
var dd = 01;
var mm = 02;
var year = 1990;
Тогда он работает, а выход - 24 года. что я делаю неправильно здесь?
EDIT
Я попытался это вместо этого, но я все еще получаю 114, если мой год 1990, но если я хардкорных дата истечения его штраф: S
var cpr = cprValue.toString();
//cpr is = 0102907896
var dd = cpr.substr(0, 2); // 01
var mm = cpr.substr(2, 2); // 02
var yy = cpr.substr(4, 2); // 90
//Calculate if 90 is > 50
if (yy>50) {
var year = 1900;
} else {
var year = 2000;
}
var final = year + "-" + mm + "-" + dd;
console.log("Final: "+ final);
var alder = moment().diff(final, 'years');
console.log(alder);
Мне нравится этот один: http://stackoverflow.com/a/15555947/265165 это самый короткий ответ, который вы можете получить. – thmshd
var myAge = curYear% year; действительно ? он возвращает 114, если вы родились в 1900 году. –
. Вы устанавливаете год либо в 1900 году, либо в 2000 году. Вы имеете в виду еще что-то вроде «var year = 1900 + yy» и то же самое для 2000 года. – thmshd