Tengo una aplicación que se está ejecutando actualmente en producción. De repente, experimenté un problema extraño que no puedo resolver para evitarlo. Cualquier sugerencia es muy apreciada.
Esta es la función donde ocurrió el error:
date_time: new Date( this.selectedDate.getFullYear(), this.selectedDate.getMonth(), this.selectedDate.getDate(), this.selectedHour.value.split(':')[0], this.selectedHour.value.split(':')[1], 0 ).toLocaleString(), Esta date_time se guardará en la base de datos. Ejemplo de salida: 12/9/2021, 2:00:00 PM . Todo está funcionando como se esperaba. Sin embargo, hoy hay un nuevo registro en la base de datos con un formato diferente: 12/9/2021 2:00:00 pm Y estropeó mi aplicación. ¿Sabes qué pasó con toLocaleString() ? Gracias.
Dado que etiquetó este angular , asumo que este código se ejecuta en el lado del cliente y envía la cadena resultante al servidor para insertarla en su base de datos.
toLocaleString convierte una fecha en una cadena formateada para la configuración regional del usuario .
Está diseñado para mostrar una fecha legible por humanos .
Si un usuario con su sistema configurado en una configuración regional diferente (probablemente porque es de un país diferente al suyo), obtendrá resultados diferentes.
Si desea una fecha estándar en un formato que sea fácilmente procesable por máquina (es decir, bueno para almacenar en una base de datos), utilice toISOString .
Puede analizarlo y convertirlo en una cadena local para mostrarlo más tarde.