【问题标题】:error with getTime() in javascriptjavascript 中的 getTime() 错误
【发布时间】:2017-09-04 03:09:08
【问题描述】:

我是 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(),它打印出的值是“未定义”。 我做错了什么?

【问题讨论】:

标签: javascript


【解决方案1】:

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

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

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

为了防止错误,只需在设置 dob 后首先将其解析为 Date。

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

或

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

希望对你有帮助

【讨论】:

    【解决方案2】:

    您在输入值上使用了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

    【讨论】:

      猜你喜欢
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      • 2020-12-08
      • 1970-01-01
      • 2012-08-07
      • 2020-08-23
      • 1970-01-01
      相关资源
      最近更新 更多