Si obtengo una fecha (sin hora, 'yyyy:mm:dd') como una cadena del servidor ("2022-06-01"), el navegador muestra 31/05/2022 cuando se usa la new Date("06-01-2022").toLocaleDateString() . Pero si elimino toLocaleDateString, se muestra como Wed Jun 01 2022 00:00:00 GMT-0400 (Eastern Daylight Time) .
Quiero que se muestre tal como está en la carga útil, "01-06-2022", no en la zona horaria del navegador. ¿Cómo crea una fecha de Javascript basada en una cadena como "01-06-2022" y hace que ignore la zona horaria del navegador y la muestre como "01-06-2022" literal? No me he encontrado con esta situación antes.
Algo como esto debería funcionar, ya que toLocalDateString devuelve una fecha que debe volver a crear para obtener el formato que necesita.
const = getFormattedDate = (date) => { date = new Date(date) var year = date.getFullYear(); var month = (1 + date.getMonth()).toString(); month = month.length > 1 ? month : '0' + month; var day = date.getDate().toString(); day = day.length > 1 ? day : '0' + day; return month + '-' + day + '-' + year; }Primero asegúrese de tener absolutamente claro para qué zona horaria es el valor del servidor. La siguiente respuesta asume que el servidor proporciona UTC (siempre es una buena idea cuando se envía fecha y hora a través de Internet global).
Solución propuesta A:
Solución propuesta B: