Usar beforeShowDay en JQuery UI Datepicker para cerrar los días de la semana

Lo que estoy tratando de hacer es agotar algunos días de la semana para un lugar para cuando está cerrado. Cada lugar puede estar cerrado en días diferentes.

Puedo utilizar el siguiente código como prueba para cerrar todos los domingos:

$('#bookingDatepicker').datepicker({ minDate: 0, maxDate: '+3M', dateFormat: 'DD, d MM, yy', altField: '#actualDate', altFormat: 'yy-mm-dd', beforeShowDay: closedDays }); function closedDays(date) { if (date.getDay() == 0){ return [false,"","Venue Closed"]; } else { return [true, ""]; } } 

Sin embargo, es posible que tenga que cerrar más de un día y que no corran uno al lado del otro. En mi código de la base de datos puedo crear una cadena, ejemplos a continuación, que muestran qué días están abiertos …

 1,2,3,4,5,6,0 //I would want to show no days closed 2,3,4,5,6 //I would want to show Sunday (0) and Monday (1) closed 

No estoy seguro de qué hacer con esto para que funcione el código anterior. Estoy usando PHP para crear la cadena, así que puedo manipularla usando eso si es necesario.

EDITAR

Como es habitual cuando publicas una pregunta, ¡obtienes un pequeño adelanto! He desarrollado el siguiente código, funciona si utilizo los datos ficticios, sin embargo, necesito encontrar una forma de ajustar mis valores de cadena en “”. Eso ahora me está causando problemas, si solo uso var cloDays = [2,3,4,5] deja de funcionar

 var cloDays = ["2","3","4","5"]; function closedDays(date){ var sDate = date.getDay().toString(); if ($.inArray(sDate, cloDays) == -1) return [false,"","Venue Closed"]; else return [true, ""]; } 

esta publicación no resolvió mi problema, pero me indicó la dirección correcta.

Esto es lo que funcionó como yo quería:

 var unavailableDates = ["9-5-2011","10-5-2011"]; function unavailable(date) { dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); if ($.inArray(dmy, unavailableDates) == -1) { return [true, ""]; } else { return [false,"","Unavailable"]; } } $('#iDate').datepicker({ minDate: +1, beforeShowDay: unavailable }); 

Esto bloquea todas las fechas en el pasado, incluido el día de hoy y luego bloquea las fechas especificadas en la matriz inasequible.

Me las arreglé para arreglarlo ejecutando mi cadena a través del siguiente código, básicamente lo explota en una matriz PHP y luego lo codifica usando JSON_Encode. Parece que funciona a la perfección:

 $cloDays = json_encode(explode(",", $cloDays));