我試着去計算用戶的日期,但它不是計算正確的方式的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