【问题标题】:jquery datepicker: select date as back as 6 monthsjquery datepicker:选择日期回溯到 6 个月
【发布时间】:2010-04-23 19:33:07
【问题描述】:

开始日期:用户可以选择回溯到 6 个月的开始日期。例如:如果今天是 2010 年 4 月 23 日,那么我可以回到 2009 年 11 月 23 日,但不超过 6 个月。

<script type="text/javascript"> 
$(document).ready(function () { 

  $('#endDate').datepicker({ showOn: 'button', 
      buttonImage: '../images/Calendar.png', 
      buttonImageOnly: true, onSelect: function () { }, 
      onClose: function () { $(this).focus(); } 
    }); 


  $('#startDate').datepicker({ showOn: 'button', 
      buttonImage: '../images/Calendar.png', 
      buttonImageOnly: true, onSelect: 
        function (dateText, inst) { 
          $('#endDate').datepicker("option", 'minDate', new Date(dateText)); 
        } 
      , 
      onClose: function () { $(this).focus(); } 
    }); 


}); 

更新代码:

   var currentDate = new Date();
    var currentMonth = currentDate.getMonth() + 1;
    var sixMonths = currentMonth + 6 
    currentDate.setMonth(currentDate.currentMonth, sixMonths);
    var myNewCurrentDate = new Date(currentDate)
    $('#startDate').datepicker('option', { minDate: myNewCurrentDate });

我得到 currentDate = NaN

【问题讨论】:

    标签: jquery datepicker


    【解决方案1】:

    您可以使用minDate option 执行此操作,如下所示:

    minDate:'-6m'
    

    Here's an updated sample from a previous question of yours with this in effect.

    您的整体代码如下所示:

    $(document).ready(function () { 
      $('#endDate').datepicker({ showOn: 'button', 
          buttonImage: '../images/Calendar.png', 
          buttonImageOnly: true, onSelect: function () { }, 
          onClose: function () { $(this).focus(); } 
      }); 
    
      $('#startDate').datepicker({ showOn: 'button', 
          buttonImage: '../images/Calendar.png', 
          buttonImageOnly: true, 
          minDate: '-6m',
          onSelect: function (dateText, inst) { 
              $('#endDate').datepicker("option", 'minDate', new Date(dateText)); 
            } 
          , 
          onClose: function () { $(this).focus(); } 
      });
    }); 
    

    【讨论】:

      【解决方案2】:

      查看最小/最大日期:

      $('#startDate').datepicker('option', 'minDate', new Date(2009, 10, 23));
      

      请注意,月份参数是 m-1(April = 3),原因我不太清楚。

      我的做法(阅读起来更简单;可能和你的意思一样):

      var currentDate = new Date();
      var currentMonth = currentDate.getMonth() + 6 - 1;
      var currentYear = currentDate.getYear();
      var currentDay = currentDate.getDay();
      $('#startDate').datepicker('option', 'minDate', new Date(currentYear, currentMonth, currentDay));
      

      【讨论】:

      • @Lester:我不想硬编码日期,我只是举了 6 个月的例子,是工作 minDate "+6" 吗?
      • 还有什么应该发生的?演出前?还是 onSelect ?
      • 嗨。是的,您需要使用 var d = new Date; myMonth= d.getMonth() 等,然后根据需要操作 -6。我不记得是否有简单的 JavaScript 函数,但很容易用 Google 搜索。 HTH!
      • 对于第二个问题,您可以在调用日期选择器后随时将其添加为单独的代码行。 (例如,就在示例帖子的最后一个右括号之前。)您无需将其塞入原始定义中,尽管您可以根据需要。
      • 当日历加载时,默认情况下我得到的是 9 月,但我想要的是,当我点击日历时,我只得到当前月份,但是当我点击上个月时,我应该能够一直到 2009 年 11 月,我认为您误解了我的要求,我在第一篇文章中已经非常清楚地说明了示例。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 2013-02-27
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多