horario de verano y javascript

Escenario

Con el fin de dibujar una gráfica cronológica, necesito generar en javascript una matriz de fechas a partir de una de inicio y otra de fin. En stackoverflow doy con una solución que considero sencilla e inteligible: Tras modificarla lo justo y probarla compruebo que devuelve una matriz de fechas de tipo '2019-02-01','2019-02-02','2019-02-03','2019-02-04'

Problema

Un buen día nos damos cuenta que falta un día en el gráfico de nuestra aplicación. Lo primero que pensamos es en la base de datos. Pero no es así, no falta ninguno. El día en cuestión en es el 27 de octubre de 2019. ¿Qué tendrá ese día que no se niega a aparecer en el gráfico?. Una de sus peculiaridades es que coincidió con el cambio de horario de invierno del año 2019. Enseguida me vino a la cabeza un error que viví hace años en el que una fecha nos trajo de cabeza hasta que vimos que caía justo en esa hora inexistente resultante del adelanto de una hora. Depuré el código, y el bucle devolvía correctamente la fecha, pero al convertirla a literal con el método toISOString(), aplicacaba el huso horario UTC que, en el caso del horario de verano es dos horas menos, y en el otro solo una. De ahí que en un caso la convierte al día anterior y, en el otro, respeta el día.

Solución

Una posible solución sería convertir la fecha a UTC antes de aplicar la conversión a literal. Yo he optado por definir a piñón la hora del día, evitando así que el horario de verano vuelva a interferir:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *