javascript - 防止计算时代的负数
问题描述
如何解决这个问题?没有负输出
<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>
输出:
解决方案
如果您允许将未来日期作为生日,那么您将得到一个负数。因此,您可以在输入字段上设置最大值以等于今天或在公式中而不是年龄 - 如果这是您想要的年龄的最低值,则设置年龄 = 0。
推荐阅读
- javascript - 材质-UI 集
- twilio - Twilio 验证 CustomerFriendlyName 失败
- microsoft-graph-api - Graph API:将 doc 文件转换为 docx
- java - 删除/过滤空值,如果它包含在字符串中
- python - 将结果集导出为 CSV
- java - android中谷歌地图的缩放范围是多少
- flutter - 为什么我的通用扩展方法需要动态而不是具体类型?
- flutter - 当我使用重新加载功能时,Firebase Auth 会注销我吗?
- azure-devops - 使用 GET API 列出基于 azure YAML 的管道的所有任务
- python - 创建一个代表二维点的类