You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript验证用户在文本框中选择的日期早于当前日期3年

核心报错原因
  • 你从input元素获取的dt为字符串类型,不存在Date实例的getTime()方法,直接调用该方法是代码报错的直接诱因,需要先将字符串转为Date对象:var dt = new Date(document.getElementById("dt").value)
  • 原有逻辑中用1095天代表3年存在闰年误差,部分场景下会出现1天的判断偏差,更严谨的实现是直接生成当前日期往前推3年的基准日期,直接和用户选择的日期比较即可。
修正后的完整实现
function run() {
  // 转换用户输入的日期字符串为Date对象
  const userSelectedDate = new Date(document.getElementById("dt").value);
  // 校验日期合法性,避免无效输入导致逻辑异常
  if (isNaN(userSelectedDate.getTime())) {
    alert("请选择有效的日期");
    return;
  }
  // 生成3年前的基准日期
  const threeYearsAgo = new Date();
  threeYearsAgo.setFullYear(threeYearsAgo.getFullYear() - 3);
  // 直接比较日期大小,符合早于3年前的要求则返回正确
  if (userSelectedDate < threeYearsAgo) {
    alert("Correct");
  } else {
    alert("Wrong");
  }
}

内容的提问来源于stack exchange,提问作者Moosa Imran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:18:02