首页 > 解决方案 > 如何使用 AppScript 将日期(从谷歌表数据)转换为时间戳(Firestore)?

问题描述

我在 Google Sheet 中有一个日期对象,我想将它作为时间戳对象导入到 Firestore,但是当我直接执行时它不起作用。

Google 表格图片 如果我输入当前日期,

 data.date = new Date(dateSt);

它将一个空的地图对象存储在 Firestore 中。 在此处输入图像描述

我应该怎么做才能将日期对象转换为时间戳。

完整代码:

function classRoutineFunction() {
   const email = "my_email";
   const key = "my_private_key";
   const projectId = "my_projectID";
   var firestore = FirestoreApp.getFirestore (email, key, projectId);


  // get document data from ther spreadsheet
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheetname = "Sheet1";
   var sheet = ss.getSheetByName(sheetname); 
   // get the last row and column in order to define range
   var sheetLR = sheet.getLastRow(); // get the last row
   var sheetLC = sheet.getLastColumn(); // get the last column

   var dataSR = 2; // the first row of data
   // define the data range
   var sourceRange = sheet.getRange(2,1,sheetLR-dataSR+1,sheetLC);

   // get the data
   var sourceData = sourceRange.getValues();
   // get the number of length of the object in order to establish a loop value
   var sourceLen = sourceData.length;

  // Loop through the rows
   for (var i=0;i<sourceLen;i++){
     if(sourceData[i][1] !== '') {
       var data = {};
       var dateSt = sourceData[i][0].toString();
       var stDate = new Date(dateSt);
       var stringfied = JSON.stringify(stDate);
       var updatedDt = stringfied.slice(1,11);

       data.date = new Date(dateSt);
       data.time = sourceData[i][1];
       data.batch = sourceData[i][2];
       data.topic = sourceData[i][3];

       firestore.createDocument("classRoutine",data);
     }

  }
}

标签: databasefirebasegoogle-apps-scriptgoogle-cloud-firestoregoogle-sheets-api

解决方案


如果您正在使用“graham”的库 1VUSl4b1r1eoNcRWotZM3e87ygkxvXltOgyDZhixqncz9lQ3MjfT1iKFw 为我使用版本 30 时修复了该错误。


推荐阅读