我写了一个短信软件,当一个号码收到文本时,会在谷歌电子表格中写入日期和其他信息。日期是这个问题的主题。发短信信息被写入谷歌电子表格。我有另一个电子表格,当短信号码收到某个输入时写入。当日期的月份发生变化时,我希望新电子表格在月份记录中创建一个中断,并为新月创建标题。为了写入新的电子表格而不是覆盖旧条目,我使用的是这个函数:
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(太平洋标准时间)?
答案 0 :(得分:1)
使用getValues()
(复数)而不是getValue()
(单数),您将返回“矩形网格”(二维数组),而不是您想要的单个单元格值:
Logger.log(paymentData.getCell((finalRow-1),1).getValue());
https://developers.google.com/apps-script/reference/spreadsheet/range#getValue()