【问题标题】:Jquery Datepicker set only 3 dates from before and after the corrsponding dateJquery Datepicker只设置了对应日期前后的3个日期
【发布时间】:2012-05-31 12:45:19
【问题描述】:

我使用了两个 jquery 日期选择器。
在第一个日期选择器中,我选择“2012 年 3 月 18 日”之类的日期,下一个日期选择器应仅显示 2012 年 3 月 15 日至 2012 年 3 月 21 日的日期。
它应该在特定日期之前和之后仅添加 3 天(“18-MAR-2012”) 我该怎么做?

【问题讨论】:

标签: jquery datepicker maxdate mindate


【解决方案1】:

这与范围日期选择器有关。我找到了解决方案,可能会帮助你。工作小提琴是here(小提琴中缺少样式)。这里我在第一个日期选择器的“onSelect”函数中设置了下一个日期选择器的限制。

var d;var tempdate; var tempdate1; var da; var da1;
$('#nam1').datepicker({
    minDate: 0,
    dateFormat: 'd/m/yy',
    buttonImageOnly: true,
    showAnim: 'slideDown',
    duration: 0,
    onSelect: function(dateStr) {
        d = $.datepicker.parseDate('d/m/yy', dateStr); //Get selected date
        tempdate = new Date(d);
        tempdate1 = new Date(d);
        tempdate.setDate(tempdate.getDate() - 3);    //Subtracted 3 days
        tempdate1.setDate(tempdate1.getDate() + 3);  // added 3 days 
        da = new Date(tempdate);
        da1 = new Date(tempdate1);
    }
});

$('#nam2').datepicker({
    dateFormat: 'd/m/yy',
    buttonImageOnly: true,
    showAnim: 'slideDown',
    duration: 0,
    beforeShow: function(input)
        {
            //setting min and max date for second datepicker
            if(da1 != undefined) return { minDate: da, maxDate: da1 }; 
        }
});​

还有更好的方法来处理日期变量。自己试试吧。

【讨论】:

    【解决方案2】:
    $(function(){
        $('#datepicker').datepicker({
            onSelect: function(dateText, inst) {
                var threeDays = 259200000;
                $('#datepicker2').datepicker("option", "minDate", new Date(Date.parse(dateText)-threeDays));
                $('#datepicker2').datepicker("option", "maxDate", new Date(Date.parse(dateText)+threeDays));
                $('#datepicker2').datepicker("setDate", dateText);
            }
        });
        $('#datepicker2').datepicker();
    });
    

    ...259200000 是以微秒为单位的 3 天。 每次您在第一个日期选择器中选择一个日期时,它都会限制 2. 中的范围。 不幸的是,如果我遗漏了$('#datepicker2').datepicker("setDate", dateText);,第二个日期选择器中的日期将设置为最后一个可能的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      相关资源
      最近更新 更多