alasql返回日期字段的错误值

时间:2018-09-25 20:09:10

标签: javascript csv alasql

我正在使用以下代码通过ALASQL读取Excel数据

alasql('SELECT * FROM FILE(?,{headers:true})', [event], function (data) {       
        excelData = data;
    });

这适用于除日期字段以外的所有字段

日期字段的值如下所示

09/08/18
9/21/2018

并且ALASQL返回值

43351
43364

如何获得实际值?还是有办法将43351更改为09/08/18

1 个答案:

答案 0 :(得分:0)

所以我发现我已经将Excel转换为Javascript Date,并使用了以下功能

function getJsDateFromExcel(excelDate) {

  // JavaScript dates can be constructed by passing milliseconds
  // since the Unix epoch (January 1, 1970) example: new Date(12312512312);

  // 1. Subtract number of days between Jan 1, 1900 and Jan 1, 1970, plus 1 (Google "excel leap year bug")             
  // 2. Convert to milliseconds.

    return new Date((excelDate - (25567 + 1))*86400*1000);

}

用法

getJsDateFromExcel(43351)

这适用于MM / DD / YYYY格式。

Here是我发现此片段的地方