如何计算日期之间的差异

时间:2015-03-04 22:13:52

标签: javascript html

我正在使用3个不同的列表来获取用户的出生日期,然后尝试使用JavaScript计算用户的年龄但是失败请帮助。

如何计算变量dobcrntDate之间的差异?

代码段:

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();
}

1 个答案:

答案 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;
&#13;
&#13;