Existe la beforeShowDay
opción, que requiere que se invoque una función para cada fecha, que devuelve verdadero si la fecha está permitida o falso si no lo está. De los documentos:
beforeShowDay
La función toma una fecha como parámetro y debe devolver una matriz con [0] igual a verdadero / falso que indica si esta fecha es seleccionable o no y 1 igual a un nombre (s) de clase CSS o '' para la presentación predeterminada. Se llama para cada día en el selector de fecha antes de que se muestre.
Mostrar algunos feriados nacionales en el selector de fechas.
$(".selector").datepicker({ beforeShowDay: nationalDays})
natDays = [
[1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'],
[4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'],
[7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'],
[10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke']
];
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1
&& date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}
Existe una función integrada, llamada noWeekends, que impide la selección de días de fin de semana.
$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })
Para combinar los dos, puede hacer algo como (asumiendo la nationalDays
función desde arriba):
$(".selector").datepicker({ beforeShowDay: noWeekendsOrHolidays})
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
Actualización : Tenga en cuenta que a partir de jQuery UI 1.8.19, la opción beforeShowDay también acepta un tercer paremeter opcional, una información emergente emergente
Uncaught TypeError: Cannot read property 'noWeekends' of undefined
embargoSi no desea que aparezcan los fines de semana, simplemente:
CSS
fuente
td.ui-datepicker-week-end { visibility: hidden; }
Estas respuestas fueron muy útiles. Gracias.
Mi contribución a continuación agrega una matriz donde varios días pueden devolver falso (estamos cerrados todos los martes, miércoles y jueves). Y incluí las fechas específicas más los años y las funciones sin fines de semana.
Si desea descansar los fines de semana, agregue [Sábado], [Domingo] a la matriz de días cerrados.
fuente
¡Datepicker tiene esta funcionalidad incorporada!
http://api.jqueryui.com/datepicker/#utility-noWeekends
fuente
La solución aquí que a todos les gusta parece muy intensa ... personalmente, creo que es mucho más fácil hacer algo como esto:
De esta manera, tus citas son legibles por humanos. No es realmente tan diferente, solo tiene más sentido para mí de esta manera.
fuente
Esta versión del código hará que obtenga las fechas de vacaciones de la base de datos sql y deshabilite la fecha especificada en el Selector de fechas de la interfaz de usuario
Cree una base de datos en sql y ponga sus fechas de vacaciones en formato MM / DD / AAAA como Varchar Coloque el contenido a continuación en un archivo getdate.php
Feliz codificación !!!! :-)
fuente
Puede usar la función noWeekends para deshabilitar la selección de fin de semana
fuente
fuente
En esta versión, mes, día y año determina qué días bloquear en el calendario.
fuente
para días incapacitantes puedes hacer algo como esto.
<input type="text" class="form-control datepicker" data-disabled-days="1,3">
donde 1 es lunes y 3 es miércolesfuente
En la última versión de Bootstrap 3 (bootstrap-datepicker.js)
beforeShowDay
espera un resultado en este formato:Alternativamente, si no le importa el CSS y la información sobre herramientas, simplemente devuelva un booleano
false
para que la fecha no sea seleccionable.Además, no existe
$.datepicker.noWeekends
, por lo que debe hacer algo similar a esto:fuente
Para el sábado y el domingo, puedes hacer algo como esto
fuente