【问题标题】:Datepicker - Set maximum date to 18 years ago from current dateDatepicker - 将最大日期设置为从当前日期起 18 年前
【发布时间】:2018-08-22 08:12:31
【问题描述】:

HTML:

<input type="text" name="date" id="datepicker" autocomplete="off">

JS:

var maxBirthdayDate = new Date();
maxBirthdayDate.setFullYear( maxBirthdayDate.getFullYear() - 18 );

$( "#datepicker" ).datepicker({
    dateFormat: 'dd.mm.yy',
    changeMonth: true,
    changeYear: true,
    maxDate: maxBirthdayDate
});

JSFIDDLE:

https://jsfiddle.net/z13au9t6/

问题: 尽管将 maxDate 设置为 18 年前是可行的,但我现在无法选择低于 1990 年的年份和高于 8 月的月份。

【问题讨论】:

  • 您确定不想将 minDate 设置为 18 年前?

标签: jquery datepicker jquery-ui-datepicker


【解决方案1】:

使用年份范围属性,将月份和日期设置为年末以超过八月

var maxBirthdayDate = new Date();
maxBirthdayDate.setFullYear( maxBirthdayDate.getFullYear() - 18,11,31);
$( "#datepicker" ).datepicker({
    dateFormat: 'dd.mm.yy',
    changeMonth: true,
    changeYear: true,
    maxDate: maxBirthdayDate,
  yearRange: '1950:'+maxBirthdayDate.getFullYear(),
});

demo

【讨论】:

    【解决方案2】:

    为此,您可以使用yearRange。为了使维护更容易,您可以通过在格式字符串中使用c 字符来使用相对于当前日期的范围,如下所示:

    $("#datepicker").datepicker({
      dateFormat: 'dd.mm.yy',
      changeMonth: true,
      changeYear: true,
      yearRange: '-99:-18'
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" />
    <input type="text" name="date" id="datepicker" autocomplete="off">

    【讨论】:

    • 但是,如果你点击当前日期,它会设置输入值
    • @RoryMcCrossan 如果您在工作示例中选择年份,那么您可以看到问题。我正在选择 1922,而 1822 被选中。
    • 你是对的 - 那是由于使用了 cyearRange。我已经编辑删除它。
    • @RoryMcCrossan 很棒。
    【解决方案3】:

    像这样设置yearRange 属性:

    yearRange: '-100:+100',
    

    它将年份范围设置为 -100 年和 +100 年。所以你可以选择过去的 100 年。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多