Javascript 将短日期数字转换为 javascript 日期

Javascript convert short date number to javascript date

我有一个 .xlsx 文件,其中有一个包含日期的 table。当我将 table 读入 javascript (使用 xlsx nodejs 包)时,日期被格式化为数字。我想将这些数字转换为日期。例如,数字 43527 应该是日期 13/03/2019。我试过 new Date(43527*60*60*24*1000) 但这给出了 2089-03-04T00:00:00.000Z 的错误答案。

Excel 使用 OLE 自动化日期 (OADate) 在内部存储日期。

基本 OLE 自动化日期是 1899 年 12 月 30 日午夜。OLE 自动化日期是作为浮点数实现的,其 整数部分是 1899 年 12 月 30 日午夜前后的天数, ,其小数部分表示当天的时间除以 24。[https://docs.microsoft.com/en-us/dotnet/api/system.datetime.tooadate?view=netcore-3.1#remarks]

您需要减去 25,569,即 1899 年 12 月 30 日到 1970 年 1 月 1 日之间的天数,然后才能转换为毫秒。

要转换日期:

var excelDate = 43527;
var parsedDate = new Date((excelDate - 25569) * 86400 * 1000)).toISOString();

如这里所述Converting Excel Date Serial Number to Date using Javascript