Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从浮动节点转换日期Excel_Javascript_Node.js_Excel_Date - Fatal编程技术网

Javascript 如何从浮动节点转换日期Excel

Javascript 如何从浮动节点转换日期Excel,javascript,node.js,excel,date,Javascript,Node.js,Excel,Date,我已经通过Node js使用npm:read Excel file读取了Excel文件。但日期格式是浮点数据类型。我已经尝试了很多方法,但有些天它有效,有些则不行。变量_num下面的日期示例不正确 Excel日期数据为true:15/01/2021 10:12:16 SA,但返回的代码为:2021-1-18 6:5:49 请帮帮我 var\u num=44211.425405092596;//此处Excel日期数据为true:15/01/2021 10:12:16 SA,但返回的代码为:202

我已经通过Node js使用npm:read Excel file读取了Excel文件。但日期格式是浮点数据类型。我已经尝试了很多方法,但有些天它有效,有些则不行。变量_num下面的日期示例不正确

Excel日期数据为true:15/01/2021 10:12:16 SA,但返回的代码为:2021-1-18 6:5:49

请帮帮我

var\u num=44211.425405092596;//此处Excel日期数据为true:15/01/2021 10:12:16 SA,但返回的代码为:2021-1-18 6:5:49
convertDateExcel(_num);
函数convertDateExcel(uu日期){
var splitDate=String(_-Date).split('.');
var_Date=new Date(1900,0,splitDate[0]-1,0,0,Math.round(splitDate[1]/1157410)).getTime()/1000
常量毫秒=_日期*1000
const dateObject=新日期(毫秒)
var month=dateObject.getUTCMonth()+1;
var day=dateObject.getUTCDate();
var year=dateObject.getUTCFullYear();
var time=dateObject.getHours()+“:”+dateObject.getMinutes()+“:”+dateObject.getSeconds();
console.log(年+“-”+月+“-”+日+”时间:“+时间)
//返回年+月+日+时间;

}
Excel日期存储为Excel纪元起的天数(1899年12月31日/1900年1月0日,请参见))

25569是Excel纪元和Unix纪元(1970-01-01)之间的天数,包括对Excel闰年错误的调整

因此,为了获得Unix时间(自1970-1-1以来的毫秒),我们从excel日期中减去25569,然后乘以一天中的毫秒数

函数convertDateExcel(excelDate){
//从Unix epoch获取毫秒数。
const unixTime=(excelDate-25569)*86400*1000;
返回新日期(unixTime);
}
var_num=44211.425405092596;

log(“结果:,convertDateExcel(_num).toISOString())为什么要对dateObject指定日期,然后有效地将毫秒舍入?为什么不在日期上使用setmillizes?为什么您使用UTC表示年、月和日,而使用local表示时间?您能帮我修复它们吗,因为我实际上是从Stackoverflow获得它们的