Datepicker默认年份错误

Datepicker default year error

我的日期选择器有一个错误,如果你没有选择或 select 一年,例如一个用户 selects May 25, 1935 (1935 年是最低的默认年份) .在文本框中,它将显示为 2015/05/25 或 2015 年 5 月 25 日。

这是代码,您可以看到错误。

$(function() {
  var startDate = "1935";
  var endDate = new Date().getFullYear() - 18;
  var interval = startDate + ":" + endDate;
  $("#from2").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    yearRange: interval,
    onClose: function(selectedDate) {
      $("#to").datepicker("option", "minDate", selectedDate);
    }
  });

  $("#to2").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    yearRange: '1935:' + (new Date).getFullYear(),
    onClose: function(selectedDate) {
      $("#from2").datepicker("option", "maxDate", selectedDate);
    }
  });
});
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">

  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
</head>

<body>

  <label for="from">Birthday</label>
  <input type="text" id="from2" name="from">



</body>

</html>

您正在做的是将 defaultDate 设置为 "+1w",这意味着 "add one week to today"。您可能应该这样做:

defaultDate: "1/1/1935"

或者您可以在实例化日期选择器后设置默认日期,方法是使用正确的 setter 方法:

$('#my-datepicker').datepicket(/* instantiation options */)
                   .datepicker( "setDate", YOUR_DEFAULT_DATE );  // use setter

下面是两者的示例:

$(function() {
  var startDate = "1935";
  var endDate = new Date().getFullYear() - 18;
  var interval = startDate + ":" + endDate;
  
  // use default date
  $("#one").datepicker({
    defaultDate: "1/1/1935",  // set default date
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    yearRange: interval
  });
  
  // use setter
  $("#two").datepicker({
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    yearRange: interval
  }).datepicker("setDate", "1/1/1935"); // set default date

});
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">

  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
</head>

<body>

  <label for="one">Birthday</label>
  <input type="text" id="one" name="one">

  <label for="two">Birthday 2</label>
  <input type="text" id="two" name="two">


</body>

</html>