首页 > 解决方案 > 在Javascript中按年计算年龄不起作用

问题描述

我正在尝试开发一个儿童杂志网站并为儿童制作一个表格,在这种表格中,我试图将输入作为(日期)类型并按年份计算差异,如果年龄为 18 =<,则返回消息或警报年龄 <= 6,现在我尝试了许多在本网站或其他网站中找到的代码:1. javascript - 年龄计算 (我尝试过:getTime() 和其他代码) 2. https://www.w3resource。 com/javascript-exercises/javascript-date-exercise-18.php 和许多人有相同的想法,但他们都没有工作..

这是代码:

</head>
<body>
    <input type="date" id="userage" name="userage" onchange=""/>
    <p id="k" ></p>
    <script>
        var a = document.getElementById('k').value ; 
        var b = Date.parse(a) ;
        var c = new Date(b);
        var d = c.getFullYear();

        function useragefun(birthday){ 
            var e = new Date(); 
            var f = e.getFullYear(); 

            var g = Math.floor(f - birthday);

            if (g >= 18 || g <= 6 ){

                document.getElementById('k').innerHTML = "You better sign in the adults form"; 


            }else "" ;





         }



    </script>
</body>

// 可能是这个或警报 ..

标签: javascripthtml

解决方案


不太确定你想要什么,但这似乎是它:

        function useragefun(birthday){ 
               let birthDate = new Date(birthday),
    		   today = new Date(),
               years = (today.getFullYear() - birthDate.getFullYear());

    if (today.getMonth() < birthDate.getMonth() || 
        today.getMonth() == birthDate.getMonth() && today.getDate() < birthDate.getDate()) {
        years--;
    }
    if (years >= 18 || years <= 6 ){
                document.getElementById('k').innerHTML = "You better sign in the adults form"; 

            } else "";
         }
    <input type="date" id="userage" name="userage" onchange="useragefun(this.value)"/>
    <p id="k" ></p>


推荐阅读