【问题标题】:Controlling range of years, months and dates in bootstrap datepicker using Javascript使用 Javascript 在引导日期选择器中控制年、月和日期的范围
【发布时间】:2019-01-16 13:48:09
【问题描述】:

我正在开发一个应用程序,使用引导程序 Datepicker 来显示日期。在我拥有的日期 经过验证,我只显示从当年起 18 年的日期(这意味着从现在起 18 年以下的任何年份都不会显示)。例如,因为我们在 2019 年(它显示 2001 年及以下的年份:2001、2000、1999、1998)。这很好用。

问题是我想显示下限应该是 18 年,上限应该是 85 年的年份。例如,由于我们在 2019 年,它应该显示 1916 年和 2001 年之间的年份,相差 85 年,(同样的情况应该在几个月和几天内发生)。

标记

// Javasript to control how the datepicker appears

//dob (Must be over 18 years and less than 85 years)
  var maxBirthdayDate = new Date();
  maxBirthdayDate.setFullYear( maxBirthdayDate.getFullYear() - 18 );
  maxBirthdayDate.setMonth(11,31)
  $( function() {
    $( "#dob " ).datepicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: 'yy-mm-dd',
      maxDate: maxBirthdayDate,
      yearRange: '1900:'+maxBirthdayDate.getFullYear(),
     });
   });
        //End dob
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/css/bootstrap-datepicker.min.css" rel="stylesheet"/>

<-- Markup -->
 <div class="form-line">
   <input type="text" placeholder="Date of Birth *" class="form-input dateTextBox" name="dob" id="dob" value="#" required>
 </div>

【问题讨论】:

标签: javascript twitter-bootstrap datepicker


【解决方案1】:

试试这个......使用startDateendDate

  var maxBirthdayDate = new Date();
  maxBirthdayDate.setFullYear( maxBirthdayDate.getFullYear() - 18 );
  maxBirthdayDate.setMonth(11,31);
  var mindate = new Date();
  mindate.setFullYear( maxBirthdayDate.getFullYear() - 85 );
  mindate.setMonth(11,31);
  $( function() {
    $( "#dob " ).datepicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: 'yy-mm-dd',
      //yearRange: '1900:'+maxBirthdayDate.getFullYear(),
      startDate: mindate,
      endDate: maxBirthdayDate
     });
   });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/css/bootstrap-datepicker.min.css" rel="stylesheet"/>

<-- Markup -->
 <div class="form-line">
   <input type="text" placeholder="Date of Birth *" class="form-input dateTextBox" name="dob" id="dob" value="#" required>
 </div>

【讨论】:

  • 您的代码无法正常工作,我需要禁用当前年份不在 18 岁和 85 岁之间的年月日..
  • 开始和结束日期是什么时候?我的示例结束日期 2001 是错误的吗?
  • 是的,它应该是 2001 年,但之后的年份不应该显示(例如 2002、2003、2004 ....),起始年份也应该是 1916 年,因为用户应该介于 18 岁之间和 85 岁..
猜你喜欢
  • 2018-12-24
  • 2017-01-18
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
相关资源
最近更新 更多