Javascript 计算天数

Javascript 计算天数,javascript,html,Javascript,Html,javascript代码没有运行。在代码中似乎找不到任何错误。一定是一些小错误。我已经检查了OST的逻辑 <html> <head> <title></title> <script> function finddays() { var today = new Date(); var user = new Date(my

javascript代码没有运行。在代码中似乎找不到任何错误。一定是一些小错误。我已经检查了OST的逻辑

<html>
    <head>
        <title></title>
        <script>
        function finddays()
        {
            var today = new Date();
            var user = new Date(myform.year.value,myform.month.value,myform.day.value,0,0,0,0);
            var msPerDay = 24 * 60 * 60 * 1000;
            var daysLeft = Math.abs((user.getTime() - today.getTime())/msPerDay);
            daysLeft = Math.round(daysLeft);
            retun(daysLeft);
        }
        </script>
    </head>
    <body>
        <form name="myform">
            <input type="number" name="date" value="date" min="1" max="31">
            <input type="number" name="month" value="month" min="1" max="12">
            <input type="number" name="year" value="year" min="1980" max="2200">
            <input type="submit" name="submit" value="SUBMIT" onclick="windows.alert ('Number of days: '+ finddays())">
        </form>
    </body>
</html>

函数finddays()
{
var today=新日期();
var user=新日期(myform.year.value,myform.month.value,myform.day.value,0,0,0);
var msPerDay=24*60*60*1000;
var daysLeft=Math.abs((user.getTime()-today.getTime())/msPerDay);
daysLeft=数学圆(daysLeft);
retun(daysLeft);
}

这将起作用,只需复制粘贴完整的代码即可

<html>
    <head>
        <title></title>
        <script>
        function finddays()
        {
            var today = new Date();
            var user = new Date(myform.year.value,myform.month.value,myform.date.value,0,0,0,0);
            var msPerDay = 24 * 60 * 60 * 1000;
            var daysLeft = Math.abs((user.getTime() - today.getTime())/msPerDay);
            daysLeft = Math.round(daysLeft);
            alert('Number of days: '+daysLeft);
        }
        </script>
    </head>
    <body>
        <form name="myform">
            <input type="number" name="date" value="date" min="1" max="31">
            <input type="number" name="month" value="month" min="1" max="12">
            <input type="number" name="year" value="year" min="1980" max="2200">
            <input type="submit" name="submit" value="SUBMIT" onclick="finddays();">
        </form>
    </body>
</html>

函数finddays()
{
var today=新日期();
var user=新日期(myform.year.value,myform.month.value,myform.Date.value,0,0,0);
var msPerDay=24*60*60*1000;
var daysLeft=Math.abs((user.getTime()-today.getTime())/msPerDay);
daysLeft=数学圆(daysLeft);
警报(“天数:”+daysLeft);
}

您犯了两个错误:

1) 使用
myform
而不声明它

2) 使用“提交”按钮而不是“提交”按钮

请将代码更改为以下内容:

HTML

<form name="myform" id="myform">
    <input type="number" name="date" value="date" min="1" max="31"/>
    <input type="number" name="month" value="month" min="1" max="12"/>
    <input type="number" name="year" value="year" min="1980" max="2200"/>
    <input type="button" name="submit" value="SUBMIT" onclick="finddays();"/>
</form>
function finddays()
{ 
    var myform=document.getElementById("myform");
    var today = new Date();

    var user = new Date(myform.year.value,myform.month.value,myform.date.value,0,0,0,0);
    var msPerDay = 24 * 60 * 60 * 1000;
    var daysLeft = Math.abs((user.getTime() - today.getTime())/msPerDay);
    daysLeft = Math.round(daysLeft);
    alert('Number of days: '+daysLeft);
}
@Riya Tilwani

您缺少以下内容:
  • 您具有html元素名称date,但尝试使用day检索它。请将其更改为以下内容: new Date(myform.year.value,myform.month.value,myform.date.value,0,0,0,0) window.alert
    新日期(myform.year.value,myform.month.value,myform.Date.value,0,0,0)
  • 您在retun(daysLeft)时出现语法错误。请改为:退货(daysLeft)
  • 在HTML中,而onclick函数您已经使用了windows.alert。请改为使用以下窗口。警告
  • 您正在计算的时间也不准确,因为月份是从0开始的索引。因此,使用以下公式(将月份减少1):var user=newdate(myform.year.value,myform.month.value-1,myform.Date.value,0,0,0)
    我已经对代码进行了测试,如果您进行了上述更改,它可以正常工作。

    您有一个输入错误-
    return(daysLeft)
    另外,只是为了让您知道在理想的JS世界中,您应该调用您的函数
    findDays()
    这是因为Javascript下次尝试使用Findbugs或Chrome Developer tools等工具时,会将camelcasing作为标准。Javascript控制台应该告诉您@Paul fiztgerald还做了什么。它不是
    windows.alert
    。它是
    窗口。警报
    。我想知道你怎么没有出错
    return(daysLeft);
    window.alert