2014-11-03 3 views
0

Я использую JQuery UI datepicker, и я хочу установить максимальную дату 31 марта текущего финансового года (с 01 апреля по 31 марта каждого года). Я не хочу, чтобы пользователь выбирал максимальную дату, которая превышает текущий финансовый год. Я собираю год ввода пользователя и на основании этого хочу установить максимальную дату 31 марта введенного финансового года.JQuery datepicker max date

Например, если я выбираю сегодня (03 ноября 2014 года), тогда моя максимальная дата должна быть 31 марта 2015 года. Как это сделать.

Я попробовал этот код, но он дает только текущий год, и я получаю 2014

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

Вы хотите, чтобы иметь возможность ограничивать его в DatePicker себя или они могут выбрать будущую дату, а затем максимальная дата получает рассчитывается? (т. е. если они вводятся в дату в 2015 году, вы хотите, чтобы 2016 была максимальной датой?) –

+0

да, это то, что я хочу, если они вводят дату в 2015 году, но это должно быть (любая дата после 01 апреля 2015 года) то моя максимальная дата должна быть 31 марта 2016 года. Если пользователь вводит 30 марта 2015 года, то максимальная дата должна быть 31 марта 2015 года, поскольку она все еще находится в текущем финансовом году (т.е. с 01 апреля 2014 года по 31 марта 2015 года) – Kalish

+0

в основном есть два поля, где я собираю год и на основании этого поля устанавливаю максимальную дату в другом поле, где у меня есть выбор времени для выбора пользовательского интерфейса. – Kalish

ответ

0

Используя метод, который вы пытаетесь делать, если у вас есть все права логики для проверки даты, то вам просто нужно добавить один год в свою переменную Now (или переменную даты, переданную с datepicker).

Для этого вы можете:

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

ИЛИ - Вы можете сделать это, как вы делаете это и:

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

Now.getFullYear() возвращает целое число, так что вы можете сделать дополнение на этом.

EDIT

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

спасибо за ответ, но с этим решением, если я выберу 01 января 2014 года, тогда он установит максимальную дату 31/03/2015 ..., которую я не хочу, потому что 01 января 2014 года в финансовом году с 01 апреля 2014 года по 31 марта 2015 года, поэтому моя максимальная дата должна быть 31 марта 2015 года. – Kalish

+0

Расчет года основан на (с 01 апреля по 31 марта данного года) (финансовый год) – Kalish

+0

Вот почему у меня есть мое заявление об отказе от начала, что если у вас есть правильная логика, чтобы проверить, какая дата они установлены. Похоже, вам просто нужно реализовать простую логику, которая говорит, что если они будут выбраны после 31 марта, вам нужно увеличить год, который они выбрали. Я попробую уточнить свой ответ, чтобы лучше объяснить –