Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript的运行时间_Javascript_Html - Fatal编程技术网

使用JavaScript的运行时间

使用JavaScript的运行时间,javascript,html,Javascript,Html,我有一小段代码,我想在上面完成3件事: 用户进入生日 用户可以看到当前日期 当用户单击按钮时,会给他们提供从生日到现在所经过的时间(即当前时间-生日) 我遇到的麻烦是,当点击按钮时,我得到的是NaN。我不知道在这一点上如何进行 <li><label>Enter Your Birthday</label></li> <li><input type="date" name="field1" id="fi

我有一小段代码,我想在上面完成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>
    
  • 输入您的生日
  • 当前日期
  • var d=新日期(); 文件编写(d); var bDay=新日期(document.quick.field1); 变量时间=d-b天; 函数calcDate(eTime){ 文件。编写(时间); }

  • 您可以使用
    document.getElementById('field1').value
    获取
    输入的值
    ,并将其传递到
    新日期
    以创建日期对象。然后,您可以得到它与今天的差值,以获得经过的时间

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

    您可以使用
    document.getElementById('field1').value
    获取
    输入的值
    ,并将其传递到
    新日期
    以创建日期对象。然后,您可以得到它与今天的差值,以获得经过的时间

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

    你的代码有很多bug-试试这个(我只升级你的代码来工作-它看起来仍然很难看):

  • 输入您的生日
  • 当前日期
  • x
  • var d=新日期(); 文件编写(d); window.calcDate=函数calcDate()//我们为fiddle绑定到window.calcDate { var bDay=新日期(document.querySelector(“.field1”).value); var eTime=d-bDay;//以毫秒为单位的差异(如果出生日期来自未来,则可以是分钟) document.querySelector(“.dateCalc”).innerHTML=eTime+'[ms]'; }

    工作

    你的代码有很多bug-试试这个(我只升级你的代码来工作-它看起来仍然很难看):

  • 输入您的生日
  • 当前日期
  • x
  • var d=新日期(); 文件编写(d); window.calcDate=函数calcDate()//我们为fiddle绑定到window.calcDate { var bDay=新日期(document.querySelector(“.field1”).value); var eTime=d-bDay;//以毫秒为单位的差异(如果出生日期来自未来,则可以是分钟) document.querySelector(“.dateCalc”).innerHTML=eTime+'[ms]'; }

    工作

    新日期(document.quick.field1)
    @obsidiane感谢您的链接,这非常有帮助@这很有道理,谢谢你<代码>新日期(document.quick.field1)@obsimanage感谢您的链接,这非常有帮助@这很有道理,谢谢你!为了改进您的答案,请在您的答案中添加一点解释,说明这是如何工作的,以及为什么这是OP问题的最佳解决方案。@WilliamJuan谢谢,这现在更有意义了。我会将其格式化为“给我几年、几个月、几天”等。为了改进您的答案,请您的答案添加一些解释,说明这是如何工作的,以及为什么这是OP问题的最佳解决方案。@WilliamJuan谢谢,这现在更有意义了。我将为“给我几年、几个月、几天”等设置格式。我应该澄清我正在尝试创建功能。你提到的bug是什么,你能澄清一下吗?@LilyV。当然有:1。读取日期的错误方式(不工作),2。阅读
    bDay
    eTime
    在错误的时间地点计算(应在函数内单击-so之后),3。以错误的方式写入结果(
    document.write
    删除整个页面),4函数
    calcDate
    不应具有参数。5.您可以用wrog方式操作html文档,例如
    document.write(d)
    。6混合了html的js代码。另外,在我看来,
    eTime=d-bDay
    的值是正确的,因为你不知道你想要什么时间格式(所以你有[ms]),我们不需要绝对值(在未来日期不同的情况下),我应该澄清我正在尝试创建功能。你提到的bug是什么,你能澄清一下吗?@LilyV。当然有:1。读取日期的错误方式(不工作),2。阅读
    bDay
    eTime
    在错误的时间地点计算(应在函数内单击-so之后),3。以错误的方式写入结果(
    document.write
    删除整个页面),4函数
    calcDate
    不应具有参数。5.您可以用wrog方式操作html文档,例如
    document.write(d)
    。6混合了html的js代码。另外,在我看来,
    eTime=d-bDay
    的值是正确的,因为你不知道你想要的时间格式(所以你有[ms]),我们不需要取它的绝对值(在未来日期不同的情况下)