JQuery datepicker范围和开始日期

问题描述:

我有一个ID为myDate的输入框,我希望用户在2014年11月11日之前输入日期,而不是在2014年12月30日之后输入日期。我也希望从当前日期起提前2周通知。JQuery datepicker范围和开始日期

  • 如果用户来到注册于10/28可选择应该是11/12-12/30
  • 如果用户来到注册于10/30可选择应该是11/14-12/30
  • 如果用户来注册今天选择的应该是11/01-12/30
  • 如果用户来注册在11/16可选择的应该是11/30-12/30
$("#myDate").datepicker({ 
    setDate: '11/01/2014', 
    minDate: 14, 
    maxDate: '12/30/2014', 
    beforeShowDay: $.datepicker.noWeekends 
}); 

但你可以看到它不起作用。设定的日期不起作用,只从当前日期开始,并提前14天提前申请。

+1

到底是什么问题? – Scimonster 2014-09-30 17:32:52

+0

设置日期不起作用。 – NoviceDeveloper 2014-09-30 17:42:47

+1

我不能相信这让选票为什么? – NoviceDeveloper 2014-09-30 17:47:06

以及没有得到任何人回答这个问题。我想出了我自己的。

希望这有助于像我这样......

$(function() { 
    var now = new Date(); 
    if (now >= Date.parse('11/01/2014')) { 
     $('#dateFrom').datepicker({ 
      minDate: 14, 
      maxDate: '12/30/2014', 
      beforeShowDay: $.datepicker.noWeekends 
     }); 
    } else { 

     var dtDate1 = '11/01/2014' 
     var dtDate2 = dtDate1.replace(/-/g, '/') 
     var nDifference = Math.abs(new Date() - new Date(dtDate2)); 
     var one_day = 1000 * 60 * 60 * 24; 
     var days = Math.round(nDifference/one_day); 

     if (Math.round(nDifference/one_day >= 14)) { 
      $('#dateFrom').datepicker({ 
       minDate: '11/01/2014', 
       maxDate: '12/30/2014', 
       beforeShowDay: $.datepicker.noWeekends 
      }); 
     } 
     else 
      if (Math.round(nDifference/one_day < 14)) { 
      $('#dateFrom').datepicker({ 
       minDate: days, 
       maxDate: '12/30/2014', 
       beforeShowDay: $.datepicker.noWeekends 
      }); 
     } 
    } 
}) 

不幸的是,我想你将不得不编写自己的自定义函数来计算高级通知片段。我认为这超出了jQuery Datepicker的功能。另外,如果你希望你的用户在11-1之前不选择一个日期,为什么不把11-1作为你的minDate?

+0

这是怎么完成的? – NoviceDeveloper 2014-09-30 19:21:18

+0

这是通过编写自己的自定义javascript来完成的,例如函数dateAdvance(){...自定义代码},以便您可以开始的示例。否则,您可以将您的分钟日期设置为'11/01/2014',并将您的maxDate设置为'12/30/2014',以设置他们可以选择的特定日期范围。 – jatwater 2014-09-30 21:03:45

+0

这不是我正在寻找的答案,不能说你回答。上面看我的解决方案。 – NoviceDeveloper 2014-10-02 12:40:45