Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

218
Vistas
Problema al convertir la fecha de Luxon a una zona horaria seleccionada de la cookie del usuario

Estoy trabajando en una aplicación web que necesita almacenar un valor inicial y final para un turno de trabajo. La aplicación tiene un componente de selección de zona horaria que actualiza cualquier valor de fecha/hora en la interfaz de usuario para que coincida con la hora en una zona horaria/ubicación determinada cambiando una cookie de zona horaria. Los valores se almacenan en una base de datos como valores UTC y se pasan a través de un controlador para convertirlos entre la base de datos y la interfaz de usuario.

Estoy trabajando en una página que tiene una excepción en la que el usuario puede cambiar/editar las horas de inicio y finalización después de guardar. La página obtendrá estos valores de los cuadros de fecha de la interfaz de usuario. Los valores se pueden convertir a UTC al guardar los valores sin problemas con el uso de Luxon, sin embargo, un usuario puede navegar de regreso a la página dada para editar los valores guardados si se necesitan cambios. Cuando esto sucede, los valores guardados se cargan en estos cuadros de fecha DevExpress/DevExtreme pero no se muestran como se esperaba.

Los valores provienen de una respuesta de odata y se leen como response.value[0].Start . Al obtener el valor, se aplica una compensación en función de la ubicación de la cookie de los usuarios, por lo que en mi caso (zona horaria de Europa/Londres), la respuesta sería 2022-05-24T01:00:00+01:00 .

Puedo convertir esto a UTC usando DateTime.fromISO(response.value[0].Start).toUTC() para darme un valor de 2022-05-24T00:00:00.000Z que se espera.

Sin embargo, estoy tratando de convertir este valor al valor deseado para una zona horaria seleccionada. Intento hacerlo con lo siguiente:

 var DateTime = luxon.DateTime; //selectedTimeZone found from cookie. // -- logic -- if (response.value[0].Start != null) { var dateBox = $("#ShiftBeginning").dxDateBox('instance'); var converted = DateTime.fromISO(response.value[0].Start).toUTC().setZone(selectedTimeZone, {keepLocalTime: true}); dateBox.option({ value: converted}); } //Example selectedTimeZone: Asia/Tokyo //converted.toString() value: 2022-05-24T00:00:00.000+09:00 (Tokyo time zone) //Displayed UI Time value: 16:00 //Displayed UI Time value with {keepLocalTime: false}: 01:00

Parece como si al valor de converted se le aplicara el desplazamiento dos veces, con una hora descontada del tiempo para representar el UTC.

Intenté cambiar el análisis de este valor a diferentes formatos, probé diferentes zonas horarias, usé el objeto Date de JavaScript estándar, etc. y estoy empezando a quedarme sin ideas.

Cualquier ayuda es apreciada para ayudar a resolver esto.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda