2014-11-03 44 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