来自 .xlsx 的日期自动转换为 5 位数字

Date from .xlsx automatically getting converted into 5 digit number

我正在尝试从 xls 中获取数据并将其上传到数据库 (sql),在 xls 中我有一个格式为 dd-mm-yyyy 的日期列,但不知何故它被转换为 5数字和 sql 抛出错误“日期值不正确:第 1 行 'date_of_birth' 列的‘43831’”。

JS格式:日期; SQL 格式:日期;

Excel 将日期存储为自 1900 年 1 月 1 日以来的天数,Javascript 使用类似于 unix 时间的系统,即 1970 年 1 月 1 日,但使用毫秒而不是天数。

因此,使用此信息,快速转换应该类似于 ->

const excelEpoc = new Date(1900, 0, -1).getTime();
const msDay = 86400000;

function excelDateToJavascript(excelDate) {
  return  new Date(excelEpoc + excelDate * msDay);
}

console.log(excelDateToJavascript(43831));