Buenas, estoy utilizando esta librería http://glad.github.io/glDatePicker/ , la cual tiene una propiedad que se llama "specialDates", para marcar días sueltos en el calendario.
Esa propiedad espera recibir un objeto con esta estructura
// specialDates: [
// {
// date: new Date(0, 8, 5),
// data: { message: 'Happy Birthday!' },
// repeatYear: true,
// cssClass: 'special-bday'
// },
// {
// date: new Date(2013, 0, 8),
// data: { message: 'Meeting every day 8 of the month' },
// repeatMonth: true
// }
// ]
El caso es que tengo que obtener esas fechas especiales desde una base de datos llamando a mi controlador php, en el cual, después de hacer las consultas pertinentes, devuelvo esto:
echo json_encode(array('status' => 'ok', 'data' => $data, 'error_message' => null));
donde $data es la variable que guarda valores así:
{date:new Date(2015,0,29),data:{message:'closed'},repeatMonth:false,cssClass:'noday'},
{date:new Date(2015,1,06),data:{message:'closed'},repeatMonth:false,cssClass:'noday'},
{date:new Date(2015,1,27),data:{message:'closed'},repeatMonth:false,cssClass:'noday'},
Realizo la petición por Ajax y guardo en una variable "specialDates" esa respuesta del controlador. Sin embargo si intento hacer esto
$("#mydate").glDatePicker({
showAlways: true,
allowMonthSelect: false,
allowYearSelect: false,
specialDates: [
specialDates
],
Se peta y no pinta nada, dando un error de la librería del calendario. El caso es que si hago un console.log(specialDates) saca por consola la cadena esperada, si esa cadena la pego en el código tal que así:
$("#mydate").glDatePicker({
showAlways: true,
allowMonthSelect: false,
allowYearSelect: false,
specialDates: [
{date:new Date(2015,0,29),data:{message:'closed'},repeatMonth:false,cssClass:'noday'},
{date:new Date(2015,1,06),data:{message:'closed'},repeatMonth:false,cssClass:'noday'},
{date:new Date(2015,1,27),data:{message:'closed'},repeatMonth:false,cssClass:'noday'},
],
Funciona perfectamente. ¿Qué se me está escapando? ¿Tiene que estar la cadena con algún formato concreto para que pueda leerla bien y funcione?
Gracias adelantadas ^^