jQuery datapicker noWeekends позволяет один выходной день

0

Я использую плагин datapicker jQuery, и я использую функцию noWeekends для отключения выходных. Единственная проблема: мне нужно включить один выходной день. Кто-нибудь знает как это сделать? Вот код, который я использую...

var disabledDays = [<?php echo rtrim($daysClosed, ","); ?>];

function nationalDays(date) {
    var m = date.getMonth(), 
        d = date.getDate(), 
        y = date.getFullYear();

    for (i = 0; i < disabledDays.length; i++) {
        if ($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
                return [false, disabledDays[i][2] + '_day'];
            }
        }
        return [true, ''];
}

function noWeekendsOrHolidays(date) {
    var noWeekend = jQuery.datepicker.noWeekends(date);
    return noWeekend[0] ? nationalDays(date) : noWeekend;
    jQuery('.cart-contents i').html(noWeekend);
}

jQuery(document).ready(function(){

    jQuery('#e_deliverydate').datepicker({
        dateFormat: 'dd/mm/yy',
        beforeShowDay: noWeekendsOrHolidays,
        minDate:<?php echo $delivMin; ?>,
        maxDate:'<?php echo $oneYearOn; ?>' 
    });

});

Заранее спасибо :)

Теги:
datepicker

1 ответ

1

fiddle Demo

$("#datepicker").datepicker({
    beforeShowDay: function (date) {
        var day = date.getDay();
        return [(day != 6)]; //0-Sunday 6-Saturday
    }
});


Обновлено после комментария OP

Отключить все 28th Dec

fiddle Demo

var array = ["28-12"];
$("#datepicker").datepicker({
    beforeShowDay: function (date) {
        var string = jQuery.datepicker.formatDate('dd-mm', date);
        return [array.indexOf(string) == -1]
    }
});


Отключить 28th Dec 2013

fiddle Demo

var array = ["28-12-2013"]; // add dates you want to disable here
$("#datepicker").datepicker({
    beforeShowDay: function (date) {
        var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
        return [array.indexOf(string) == -1]
    }
});


Чтобы включить 28th Dec

Updated fiddle Demo

$("#datepicker").datepicker({
    beforeShowDay: function (date) {
        var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
        if (string == "28-12-2013") {
            return  [true];
        } else {
            var day = date.getDay();
            return [(day != 6)];
        }
    }
});
  • 0
    Спасибо за ответ, но это не очень помогает. У меня уже есть функция noWeekendsOrHolidays которая отключает все выходные и любые дни, которые я определяю. Я должен был объяснить, что я не хочу включать все субботы, только один день - 28 декабря. Спасибо
  • 0
    @ StuartTaylor-Jones проверить обновленный ответ с помощью скрипки демо.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню