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

如何让计算日期区间的JavaScript代码兼容'use strict'严格模式?

问题解决方案

你的代码问题为minYear和maxYear未显式声明,会默认成为全局变量,若开启严格模式会直接触发引用错误报错。


修改方案

仅需要给这两个变量添加声明关键字即可,不会影响原有代码逻辑。由于两个变量赋值后不会二次修改,推荐使用const声明,也可以根据你的编码习惯替换为let或var:

window.onload = function() {
  init();
  var date = new Date();
  var dd = date.getDate();
  var mm = date.getMonth() + 1;
  var yyyy = date.getFullYear();

  //Add a zero if one Digit (eg: 05,09)
  if (dd < 10) {
    dd = "0" + dd;
  }

  //Add a zero if one Digit (eg: 05,09)
  if (mm < 10) {
    mm = "0" + mm;
  }

  // 新增const声明,不改变原有计算逻辑
  const minYear = yyyy - 80; //Calculate Minimun Age (<80)
  const maxYear = yyyy - 15; //Calculate Maximum Age (>18)

  var min = minYear + "-" + mm + "-" + dd;
  var max = maxYear + "-" + mm + "-" + dd;

  document.getElementById("start").setAttribute("min", min);
  document.getElementById("start").setAttribute("max", max);

};

可选优化提示

你代码注释中标注最大年龄限制为大于18岁,但当前计算逻辑为yyyy - 15,实际限制的是大于15岁,如果你需要严格限制18岁以上,可以将对应行修改为:

const maxYear = yyyy - 18; //Calculate Maximum Age (>18)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:45:03