2014-11-05 19 views
0

我需要一個彈出對話框來顯示輸入值的年數和月份。我嘗試了幾種方法,但仍然無法解決問題。我以NaN爲答案。有人可以幫我嗎?使用JavaScript從html字段獲取年齡

我的HTML:

<label for="dob">Child’s Date of birth</label> 
<input class="form-control" type="date" name"dob" placeholder="Date of birth" id="dob" onblur"dateofBirth()"/> 

和JavaScript:

function dateofBirth{ 
var dofBirth = document.getElementById("dob").value; 
var age = (new Date() - dofBirth)/(1000 * 60 * 60 * 24*365); 
alert("The child's age is "+ age); 
} 
+0

確實'dofBirth'有什麼樣的價值(提示:這取決於你輸入到輸入) 。當你試圖從「新日期」中減去它時,你期望發生什麼? – Quentin 2014-11-05 11:15:10

+1

它應該不是'alert(「孩子的年齡是」+年齡);' – morne 2014-11-05 11:15:15

+0

@mornenel ......這只是一個疏忽。打字速度很快,回覆只是在帖子發佈後一分鐘。 – 2014-11-05 11:21:10

回答

0

我猜測dofBirth是輸入後String類型。你需要把它變成一個約會日期。

var age = (new Date - new Date(dofBirth)) 

希望幫助!

+0

這現在可行。 – 2014-11-05 11:32:01

+0

請標記正確的答案,如果它幫助你:) thx – badrequest400 2014-11-05 11:35:29

0

首先,日期輸入法還沒有得到廣泛的支持,但是,鉻會給我「2014-11-05」,因爲JS會得到的值。

因此,你可以使用badrequest400的方法,但似乎有一個時區調整。所以我建議是這樣的:

var tempStr = doBirth.split("-"); 
var age = (new Date() - new Date(tempStr[0], tempStr[1] - 1, tempStr[2])); // Plus your other calculations. 

即減去一個是必要的,因爲個月從0 - 11