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