Estoy enfrentando algunos problemas con la visualización de fechas. cuando los usuarios seleccionan una fecha, la estoy formateando así
new Date(date).toISOString().split('T')[0];porque este es el formato que espera nuestro backend de django y luego el backend devuelve una fecha como esta:
2021-09-02luego estoy formateando la fecha devuelta desde el backend con moment.js:
moment.utc(new Date(date)).format('MMM DD')Pero el problema es que cuando selecciono "25 de septiembre" obtengo "25 de septiembre".
Pero algunos de los miembros de mi equipo que están en India seleccionan "25 de septiembre" y obtienen "24 de septiembre".
Si ejecuto new Date('2021-09-02') en mis herramientas de desarrollo.
Me llega Wed Sep 01 2021 17:00:00 GMT-0700 (Pacific Daylight Time)
y obtienen Date Thu Sep 02 2021 05:30:00 GMT+0530 (India Standard Time)
¿Cómo puedo manejar este caso extremo? No estoy seguro si necesito actualizar el formato almacenado en el backend. necesito tus sugerencias
Este es un problema de zona horaria, y el problema parece ser que le gustaría seleccionar una fecha (25 de septiembre), pero en realidad está seleccionando una hora y luego convirtiéndola en una cadena para representar una fecha.
Cuando su usuario selecciona una fecha, ¿podría hacer que seleccione el día y el mes, en lugar de todo el tiempo?
Editar
Hmm, lo siento, el problema no está en la selección de la fecha, sino en convertir la fecha devuelta por su servidor en una hora. Pero no quieres una hora, solo quieres una cita.
Su servidor está devolviendo una cadena como "2021-09-25" para indicar "25 de septiembre". Podría analizar esta cadena y obtener las partes importantes:
function displayDayMonth(date) { const [_year, month, day] = date.split("-").map(s => parseInt(s, 10)); const months = ["Jan", "Feb", //... etc ]; return `${months[month - 1]} ${day}`; } const date = "2021-09-25"; displayDayMonth(date); // => "Sep 25"Por otro lado, ¿qué sucede si el tiempo realmente importa? Si un evento en la hora del Pacífico es el 25 de septiembre, una buena parte de ese evento ocurre el 24 de septiembre en la India. ¿Quizás no está capturando suficientes detalles sobre el evento?