我正在使用3个不同的列表来获取用户的出生日期,然后尝试使用JavaScript计算用户的年龄但是失败请帮助。
如何计算变量dob
和crntDate
之间的差异?
代码段:
function calculateDOB()
{
var day = document.getElementById("signUpDate").value;
var mnth = document.getElementById("signUpMnth").value;
var year = document.getElementById("signUpYear").value;
var dob = day+"/"+mnth+"/"+year;
var crntDate = Date();
}
答案 0 :(得分:2)
您的dob
是字符串。您应该转换为日期并使用.getTime()
来计算它。下面是一些例子,希望它会有所帮助。
function calc() {
var day = document.getElementById("signUpDate").value;
var mth = document.getElementById("signUpMnth").value;
var year = document.getElementById("signUpYear").value;
var today = new Date();
var dob = new Date(year, mth, day);
var diff = today.getTime() - dob.getTime();
alert("Day " + Math.ceil((diff / 24 / 60 / 60 / 1000)));
}

<input id="signUpDate" maxlength="2" size="2" value="1">
<select id="signUpMnth">
<option value="0">Jan</option>
<option value="1">Feb</option>
<option value="2" selected>Mar</option>
<option value="3">Apr</option>
<option value="4">May</option>
<option value="5">Jun</option>
<option value="6">Jul</option>
<option value="7">Aug</option>
<option value="8">Sep</option>
<option value="9">Oct</option>
<option value="10">Nov</option>
<option value="11">Dec</option>
</select>
<input id="signUpYear" maxlength="4" size="4" value="2015">
<input type="button" onClick="calc()" value="test">
&#13;