Una de las librerías más ocupadas para incluir calendarios en las webs es la provista por Mihai Bazon, <mihai_bazon@yahoo.com>
http://dynarch.com/mishoo/. Esta libreria es ampliamente usada en sitios como LAN y MindFree (empresas grandes, claro).
El problema
Surge de un llamado que nos avisa que el día 12 de Octubre se repite en los calendarios.¡¡¡ ¿Qué?!!!. Claro, en la vista de Octubre, el 2º fin de semana repite el día Sábado al Domingo, lo que provoca una desincronización hacia adelante.
El problema técnico
La librería está construida sobre javascript y utiliza un archivo calendar.js que construye el calendario y según la configuración del calendario del computador que visualiza las páginas, si tiene activado cambiar automáticamente al horario de verano, provoca el fallo. Esto ocurre porque el día pasa a tener 23 o 25 horas dependiendo del cambio, lo que es mal interpretado por el javascript.
La solución
Hacer que el script tenga días en formato de 12 horas. Eso se agrega de la siguiente manera:
En calendar.js, linea 1042 (dependiendo de la versión, sino busque la función)
/**
* (RE)Initializes the calendar to the given date and firstDayOfWeek
*/
Calendar.prototype._init = function (firstDayOfWeek, date) {
var today = new Date(),
TY = today.getFullYear(),
TM = today.getMonth(),
TD = today.getDate();
Agregar:
/**
* (RE)Initializes the calendar to the given date and firstDayOfWeek
*/
Calendar.prototype._init = function (firstDayOfWeek, date) {
date.setHours(12);
var today = new Date(),
TY = today.getFullYear(),
TM = today.getMonth(),
TD = today.getDate();
Y voilá, flor de solución. Es curioso como hay poca documentación sobre este problema, casi no ha sido reportado y encontré la solución después de un buen rato.
convert this post to pdf.