JavaScript将短日期数字转换为javascript日期[重复]

问题描述 投票:0回答:1

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

javascript date xlsx js-xlsx
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.