2011-10-10 26 views
0

在每個普通瀏覽器上,日期通常是按照38歲計算的。在iPad上使用Javascript的年齡計算

在iPad上,我得到一個不是數字(NaN)錯誤...但爲什麼?

function getAge(date) { 
    var today = new Date(); 
    var birthDate = new Date(date); 
    var age = today.getFullYear() - birthDate.getFullYear(); 
    var m = today.getMonth() - birthDate.getMonth(); 
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { 
     age--; 
    } 
    return age; 

} 

編輯:NaN的@ IPAD,IE8和火狐在瀏覽器&

+0

發生錯誤的行? –

+2

輸入參數'date'的格式是什麼? –

+0

輸入參數是「1950-06-19」;通過jquery讀取一個xml文件 – zyrex

回答

2

正確的工作你需要做的輸入日期字符串下列轉換爲它在iPad/iPhone的正常工作。

function getAge(date) { 
    date = date.replace(/-/,"/").replace(/-/,"/"); //substitute - with/
    var today = new Date(); 
    var birthDate = new Date(date); 
    var age = today.getFullYear() - birthDate.getFullYear(); 
    var m = today.getMonth() - birthDate.getMonth(); 
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { 
     age--; 
    } 
    return age; 
} 
+0

輸入參數是「1950-06-19」我必須刪除哪些行?實際上你的方法沒有變化 – zyrex

+1

你不需要刪除。試試這個'date = date.replace(/ - /,「/」)。replace(/ - /,「/」);'它應該工作。 –

+0

不錯,它的工作。謝謝! – zyrex