Google Scripts Javascript日期错误

时间:2017-01-06 18:57:59

标签: javascript date google-apps-script google-sheets

我写了一个短信软件,当一个号码收到文本时,会在谷歌电子表格中写入日期和其他信息。日期是这个问题的主题。发短信信息被写入谷歌电子表格。我有另一个电子表格,当短信号码收到某个输入时写入。当日期的月份发生变化时,我希望新电子表格在月份记录中创建一个中断,并为新月创建标题。为了写入新的电子表格而不是覆盖旧条目,我使用的是这个函数:

var getFirstEmptyRowWholeRowInPaymentSheet = function() {
  var sheet = SpreadsheetApp.openById("Spreadsheet ID");
  var range = sheet.getDataRange();
  var values = range.getValues();
  var row = 0;
  for (var row=0; row<values.length; row++) {
    if (!values[row].join("")) break;
  }
  return (row+1);
}

正如我之前所说,我想比较收到文本的日期和旧日期。这是我用来试图找出问题的日志语句:

var finalRow = getFirstEmptyWholeRowInPaymentSheet();
    var dayHolder = splitDate[1];
             var amountPaid = messageBody.split(" ")[2];
            Logger.log("Final Row: " + finalRow);
            Logger.log("Final Row - 1: " + (finalRow-1));
            Logger.log("Recieved Date: " + e.values[0]);
            Logger.log("Previous Date: " + paymentData.getCell((finalRow-1),1).getValues());
            Logger.log("Previous previous date: " + paymentData.getCell((finalRow - 2),1).getValues());
            Logger.log("Previous previous date: " + paymentData.getCell((finalRow - 3),1).getValues());
            Logger.log("Previous previous date: " + paymentData.getCell((finalRow - 4),1).getValues());
            Logger.log("Previous previous date: " + paymentData.getCell((finalRow - 5),1).getValues());

这就是日志的样子:

1: Final Row: 10
2: Final Row - 1: 9
3: Received Date: 1/6/2017 10:32:18
4: Previous Date: Sun Jan 01 2017 00:00:00 GMT-0800 (PST)
5: Previous previous date: undefined
6: Previous previous date: undefined
7: Previous previous date: undefined
8: Previous previous date: undefined

这不正确,之前的日期应该是1/6/2017 10:17:47。有人可以帮我理解为什么谷歌脚本默认为2017年1月1日00:00:00 GMT-0800(太平洋标准时间)?

1 个答案:

答案 0 :(得分:1)

使用getValues()(复数)而不是getValue()(单数),您将返回“矩形网格”(二维数组),而不是您想要的单个单元格值:

Logger.log(paymentData.getCell((finalRow-1),1).getValue());

https://developers.google.com/apps-script/reference/spreadsheet/range#getValue()