Как конфертировать из значения даты в Google Sheet в дату JavaScript? - PullRequest
0 голосов
/ 01 ноября 2018

Для дат Google Sheets дает некоторое числовое значение в примерно чистом числовом формате, например 450345. Как преобразовать это число в значение даты в JavaScript? Попытался создать новую дату на основе одного из них и получил значение, которое не соответствует значению даты отображения в Google Sheets.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Приветствую TheWizEd за то, что он привел меня к тому, что кажется правильным ответом. Вот простой скрипт преобразования:

function logSheetDateString(GS_date_num, timezone, format) {
    var GS_earliest_date = new Date(1899, 11, 30), 
        //GS_earliest_date gives negative time since it is before 1/1/1970
        GS_date_in_ms = GS_date_num*24*60*60*1000;
    Logger.log(Utilities.formatDate(new Date(GS_date_in_ms + GS_earliest_date.getTime()), 
                                    timezone, format));
}

Преобразование в миллисекунды с 1 января 1970 года может быть упрощено как:

JS_date_in_ms = GS_date_num * 86400000 - 2209132800000;
0 голосов
/ 01 ноября 2018

Вы можете получить дату в формате ячейки, а затем в формате , используя утилиты:

var cell = sheet.getRange("C4");
var formattedDate = Utilities.formatDate(cell.getValue(), "GMT", cell.getNumberFormat());
Logger.log(formattedDate);

Не забудьте изменить GMT на ваш часовой пояс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...