使用JavaScript经过的时间

时间:2018-11-08 19:52:17

标签: javascript html

我有一小段代码,我想在其中完成三件事:

  1. 用户输入生日
  2. 用户可以看到当前日期
  3. 当用户单击按钮时,系统会为他们提供从生日到现在的时间(即当前时间-生日)。

我遇到的麻烦是,单击按钮时,我得到的只是NaN。我现在不确定如何进行。

        <li><label>Enter Your Birthday</label></li>
        <li><input type="date" name="field1" id="field1"></li>

        <li><label for="date">Current Date</label></li>
        <script id="curDate">
            var d = new Date();
            document.write(d);
            var bDay = new Date(document.quiz.field1);
            var eTime = d - bDay;
            function calcDate(eTime) {
                document.write(eTime);
            }
        </script>
        <li><input type="button" value="Click" onclick="calcDate(eTime)"></li>

2 个答案:

答案 0 :(得分:2)

您可以使用document.getElementById('field1').value来获取input的值,并将其传递给new Date以创建日期对象。然后,您可以获取与今天之间的差值,以获取经过的时间。

var diff = Math.abs(new Date() - new Date(document.getElementById('field1').value));

答案 1 :(得分:0)

您的代码有很多错误-尝试一下(我仅升级您的代码即可使用-看起来仍然很丑):

<li><label>Enter Your Birthday</label></li>
<li><input type="date" name="field1" class="field1"></li>
<li><label for="date">Current Date</label></li>
<li><span class="dateCalc">x</span></li>
<li><input type="button" value="Click" onclick="calcDate()"></li>

<script >
  var d = new Date();
  document.write(d);

  window.calcDate = function calcDate() // we bind to window.calcDate for fiddle
  {
    var bDay = new Date(document.querySelector(".field1").value);
    var eTime = d - bDay; // diffrence in miliseconds (can be mins if birth date is from future)

    document.querySelector(".dateCalc").innerHTML = eTime+ ' [ms]';
  }
</script>

工作example