首页 > 解决方案 > 防止计算时代的负数

问题描述

如何解决这个问题?没有负输出

<script>
    $("#bday").change(function(){

    var today = new Date();
    var birthDate = new Date($('#bday').val());
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
   return $('#age').val(age);
});
</script>

输出:

这是输出

标签: javascript

解决方案


如果您允许将未来日期作为生日,那么您将得到一个负数。因此,您可以在输入字段上设置最大值以等于今天或在公式中而不是年龄 - 如果这是您想要的年龄的最低值,则设置年龄 = 0。


推荐阅读