我试着去计算用户的日期,但它不是计算正确的方式的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
BUT
如果我改变DD,毫米,YY和硬编码这样
var dd = 01;
var mm = 02;
var year = 1990;
然后它的工作和输出是24年。 我在这里做错了什么?
编辑
我已经试过这个代替,但我仍然得到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 2014-12-05 12:13:49
var myAge = curYear%year;真的吗?如果您出生于1900年,则返回114 – 2014-12-05 12:14:45
您将年份设置为1900年或2000年。您的意思是更多类似于“var year = 1900 + yy”和2000年相同的内容。 – thmshd 2014-12-05 12:18:20