Estoy tratando de tomar datos de xls y subirlos a la base de datos (sql), en el xls tengo una columna de fecha en formato dd-mm-yyyy, pero de alguna manera se está convirtiendo a un número de 5 dígitos y sql arroja un error "Incorrecto valor de fecha: '43831' para la columna 'fecha_de_nacimiento' en la fila 1".
Formato JS: fecha; Formato SQL: fecha;
Excel almacena sus fechas como el número de días desde el 1 de enero de 1900, Javascript usa un sistema similar al tiempo de Unix, el 1 de enero de 1970, pero usa milisegundos en lugar de días.
Entonces, usando esta información, una conversión rápida debería verse como ->
const excelEpoc = new Date(1900, 0, -1).getTime(); const msDay = 86400000; function excelDateToJavascript(excelDate) { return new Date(excelEpoc + excelDate * msDay); } console.log(excelDateToJavascript(43831));