javascript中的getTime()错误

时间:2017-09-04 03:09:08

标签: javascript

我是javascript的新手。我正在尝试创建一个页面,其中包含出生日期的输入选项。点击提交按钮后,我想确认该人未成年(18岁以上)。

这是我的HTML代码

<form id="myForm" method="get" action="#">

  <p>Date of birth: <input type="date" name="dob" value="MM-DD-YYYY" required></p>

  <p><input type="submit" value="submit" onclick="return validate_date_of_birth()">
</form>

这是我的javascript函数:

function validate_date_of_birth(){
    var dob = document.forms["myForm"]["dob"].value;
    var ageDifMs = Date.now() - dob.getTime();
    return true;
}

我遇到了dob.getTime()的问题。请注意,我并没有真正验证上述代码中的年龄。那将需要一个if循环来验证年龄。我陷入了没有计算差异的地步。 我试图通过使用javascript中的alert()函数来检查Date.now()和dob.getTime()的值。对于dob.getTime(),它打印出的值是“未定义”。 我做错了什么?

2 个答案:

答案 0 :(得分:0)

.getTime()是JavaScript中Date/Time object的一种方法。

var dob = document.forms["myForm"]["dob"].value;不是有效的Date对象,因为这是一个字符串。

导致您在dob.getTime()中出错。

防止错误只是在设置后将dob简单地解析为日期。

var dob = new Date(document.forms["myForm"]["dob"].value);

OR

var dob = document.forms["myForm"]["dob"].value;
dob = new Date(dob);

希望有所帮助

答案 1 :(得分:0)

您在输入值上使用了getTime(),但您需要在Date对象上使用它。为此,从输入值构造一个Date对象,然后您就可以获得时间。但请注意,Date必须采用以下格式之一:

  • YYYY-MM-DD
  • MM/DD/YYYY
  • 2015年3月25日
  • 2015年3月25日星期三

否则你会收到错误。您显然可以接收任何格式,然后将其重新格式化为您需要的格式。

function validate_date_of_birth(){
    var dob = document.forms["myForm"]["dob"].value;
    var ageDifMs = Date.now() - new Date(dob).getTime(); // we make a new Date object from dob
    console.log(ageDifMs);
    return false; // so we can see the result and not be redirected
}
<form id="myForm" method="get" action="">

  <p>Date of birth: <input type="date" name="dob" value="YYYY-MM-DD" required></p>

  <p><input type="submit" value="submit" onclick="return validate_date_of_birth()">
</form>

Date reference