¿Fue útil?

Solución

Después de cierta confusión inicial (respuestas por mí y Andy E y principalmente mis comentarios a su respuesta), que es probable que se contestaron todas formas, he descubierto lo que parece ser la verdadera causa de su problema.

El plugin internamente utiliza el mismo código de la función parseISO8601 que fue propuesto por Andy E que viene de Analizar del W3C ISO 8601 fecha / horas en JavaScript .

Sin embargo, a pesar de Andy E indica que ese código funciona sin problemas, el plugin fullcalendar, que utiliza ese código también parece tener un error.

Después de mirar más de cerca el código, me di cuenta de que el plugin parece ignorar la zona horaria que se encuentra.

Comparar estos fragmentos de código

Fragmento de código original de delete.me.uk

if (d[14]) {
    offset = (Number(d[16]) * 60) + Number(d[17]);
    offset *= ((d[15] == '-') ? 1 : -1);
}

Código de fullcalendar.js

if (!ignoreTimezone) {
    if (m[14]) {
        offset = Number(m[16]) * 60 + Number(m[17]);
        offset *= m[15] == '-' ? 1 : -1;
    }
    offset -= date.getTimezoneOffset();
}

Como se puede ver el plugin sólo se ocupa de la zona horaria si ignoreTimezone se establece en false. Pero eso simplemente nunca es el caso. parseISO8601() en este plugin se llama siempre con juego ignoreTimezone true.

Por lo tanto apuesto a que el fallo viene de esto y usted debe considerar ponerse en contacto con el autor del plugin. Pero primero debe verificar si la fecha se analiza correctamente si se establece ignoreTimezone en false en el código del plugin

Otros consejos

Esto podría funcionar para usted:

function parseDate(value) {
    var a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);

    if (a) {
        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6]));
    }

    return null;
}

Supongo que significa una cadena de fecha ISO 8601 ( UTC es un estándar de tiempo, no se un formato de visualización). He usado esta función de delete.me.uk durante algunos años ahora, en un entorno de producción sin problemas de pruebas en BST / GMT (mi zona horaria local).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top