alasql возвращает неправильное значение для поля даты

Я использую приведенный ниже код для чтения данных Excel с использованием ALASQL

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

Это работает для всех полей, кроме поля даты

Поле даты имеет значения как ниже

09/08/18
9/21/2018

и ALASQL возвращает значение как

43351
43364

Как я могу получить фактическое значение? или есть способ изменить 43351 в 09/08/18?

2 ответа

Другой ответ имеет разницу в два дня с этим

https://github.com/date-fns/date-fns/issues/369

Итак, я понял, что я преобразовал в 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.

Вот где я нашел этот фрагмент

Другие вопросы по тегам