2014-11-03 145 views
0

我正在使用Jquery UI日期选择器,我想将最大日期设置为当前财政年度(从每年的4月1日至3月31日)的3月31日。我不希望用户选择超过当前财政年度的最大日期。我正在捕获用户输入年份,并基于此我想将最大日期设置为输入财政年度的3月31日。jquery datepicker max date

例如,如果我今天选择(2014年11月3日),那么我的最大日期应该是2015年3月31日。如何实现这一点。

我曾尝试这个代码,但它只是当年给我弄2014

var Now = new Date();    
var maxDate = Date.parse("31/03/"+Now.getFullYear()); 
+0

你希望能够将其限制在日期选择器本身或者他们可以选择一个将来的日期,然后最大日被计算出来的? (例如,如果他们在2015年的某个日期输入您希望2016年成为最大日期?) – 2014-11-03 20:32:00

+0

是的,这是我想要的,如果他们在2015年输入日期,但应该是(2015年4月1日之后的任何日期)那么我的最大日期应为2016年3月31日。如果用户输入2015年3月30日,则最大日期应为2015年3月31日,因为它仍在当前财政年度(即2014年4月1日至2015年3月31日) – Kalish 2014-11-03 20:38:48

+0

基本上有两个领域,其中一个是我捕获年份的地方,并且基于该领域,我在其他领域拥有UI日期选择器的最大日期。 – Kalish 2014-11-03 20:42:02

回答

0

使用方法你想现在要做的,如果你把所有正确的逻辑来检查的日期,那么你只需要添加一年到你的Now变量(或从datepicker传入的日期变量)。

要做到这一点,您可以:

var Now = new Date();    
Now.setFullYear(Now.getFullYear() + 1); 

OR - 你可以做到这一点,你是如何做的和:

var maxDate = Date.parse("31/03/"+ (Now.getFullYear() + 1)); 

Now.getFullYear()返回一个整数,所以你可以做除此之外。

编辑

var nextFinanicalYearMonth = 4; 
if(datePicked.getMonth() >= nextFinancialYearMonth) 
{ 
    var maxDate = datePicked.parse("31/03/" + (datePicked.getFullYear() + 1)); 
} 
+0

感谢您的答案,但通过此解决方案,如果我选择2014年1月1日,那么它将设置最大日期为31/03/2015 ...我不想要,因为2014年1月1日是财政年度在2014年4月1日至2015年3月31日之间,因此我的最大日期应为2015年3月31日。 – Kalish 2014-11-03 20:50:32

+0

年计算基于(给定年份的4月1日至3月31日)(财政年度) – Kalish 2014-11-03 20:52:56

+0

这就是为什么我在开始时有我的免责声明如果你有正确的逻辑来检查他们设定的日期。听起来就像你只需要实现一些简单的逻辑,说如果他们在3月31日之后选择,那么你需要增加他们选择的年份。我会尝试更新我的答案以更好地解释 – 2014-11-03 20:52:59