javascript - JavaScript 出生日期检查器不起作用
问题描述
不能正常工作;总是输出“16 以上”。我一直在调整 if 语句,但无法弄清楚。需要一些帮助,谢谢!
function hasDateCheck() {
let dateSpliter = document.querySelector("#dateOfBirth").value.split("-");
console.log(`${dateSpliter[0]} ${dateSpliter[1]} ${dateSpliter[2]}`); // YYYY MM DD
let today = new Date();
let dd = today.getDate();
let mm = today.getMonth();
mm++;
let yyyy = today.getFullYear();
if (yyyy - dateSpliter[0] < 16 && mm - dateSpliter[1] < 0 && dd - dateSpliter[2] < 0) {
console.log("below 16");
} else {
console.log("above 16");
}
}
document.querySelector("#submit").addEventListener("click", (e) => {
e.preventDefault();
hasDateCheck();
});
<input name="dateOfBirth" id="dateOfBirth" type="date" required/>
<input type="submit" id="submit" value="Submit" id="formSubmit">
解决方案
您的 if 条件无效,
用这个替换你的 if 条件,
if (yyyy - dateSpliter[0] <= 16 && mm - dateSpliter[1] <= 0 && dd - dateSpliter[2] <= 0) {
console.log("below 16");
} else {
console.log("above 16");
}
如果您想计算年龄,请参考@Aniket 答案
推荐阅读
- javascript - 加载 reactjs 后 css 动画无法正常工作
- c# - 在 WPF 中访问 UserControl Name 属性
- textures - WebGPU:在运行时更改纹理
- node.js - cPanel 目录“public_html”不允许的问题
- excel - VBA 不会延长 24 小时
- python - trinket.io 和 repl.it 上的持续缩进错误 - 无法删除
- powershell - 如何使用 CLI 在 Azure Devops 中设置“重置所有代码审阅者投票”
- android - java.io.InvalidClassException:org.jetbrains.kotlin.incremental.IncrementalModuleInfo
- groovy - 创建 Scriptrunner 作业以列出所有存储库的挂钩
- html - 如何更改 html 电子邮件模板中的白色侧边栏颜色