2014-11-05 2 views
0

В настоящее время у меня есть этот код, который позволяет мне изменить специальную дату поставки рождества. В этом году мы предлагаем 3 даты доставки - 21, 22 и 23. Как я могу манипулировать этим кодом, чтобы разрешить такой диапазон?Как создать диапазон дат доставки в Js

Текущий код:

setValidDaysForNationwideDelivery: function(date) { 
    if ((date.getMonth() == 11) && (date.getDate() == 21)) { 
     return [true, ""]; 
    } 
} 

ответ

1

Просто используйте диапазон:

setValidDaysForNationwideDelivery: function(date) { 
if (date.getMonth() == 11 && date.getDate() >= 21 && date.getDate() <= 23) { 
return [true, ""]; } 

примечание стороны: Дополнительный () вокруг каждого сравнения (date.getMonth() == 11) не имеют абсолютно никакого эффекта, я удалил их выше.

0

Как это:

setValidDaysForNationwideDelivery: function(date) { 
    date = date.getMonth() + '-' + date.getDate(); 
    var range = ['11-21', '11-22', '11-23']; 
    if (range.indexOf(date) !== -1) { 
    return [true, ""]; 
    } 
} 

Преимущество этого метода: в следующем году вы только должны remplace даты в переменной диапазона, и вы можете положить все, что вы хотите.

0

Создание объектов JavaScript даты, которые представляют собой начальную и конечную дату, а затем проверить, если дата находится в пределах диапазона, используя больше/меньше, чем сравнения:

setValidDaysForNationwideDelivery: function(date) { 
    var d1 = new Date(2014, 11, 21); 
    var d2 = new Date(2014, 11, 23); 
    return [d1 <= date && date <= d2, ""]; 
} 

Примечание: если вы используете эту функцию с помощью JQuery UI datepicker, то он должен вернуть массив. Также обратите внимание, что в то время как < и > работает для сравнения даты, == и === нет.