来自Google表单的时间戳通过getTime()

时间:2015-06-29 04:26:21

标签: javascript google-apps-script

我有一个谷歌表单,它返回一个名为'表单回复1'的谷歌电子表格的回复。 A列是时间戳(这显示为' 25/06/2015 21:36:00'在谷歌电子表格单元格中),列G和I包含我感兴趣的数值最后一行没有""值。最后一行没有""列G和I中的值可能不是完全相同的行。

1)有没有办法不重新定义" var lastRow = spreadsheet.getSheetByName(" Form response 1")。getLastRow();"在第11行?我发现这行是重置var lastRow的定义所必需的。

没有它,最后一行没有""第一列中的值是错误的(从G列的最后一行开始,使用非""值而不是向上计数,从而得到下一个非""行第I列的最后一行。

2)我正在为G和I列获取LastNonZeroDate的NaN,我试图使用getTime()函数在几毫秒内检索它。我该如何解决这个问题?

如果我检索"新日期的值(' responvalues [lastRow - 1] [0]')getTime()"相反,在一个消息框中,它给了我" 2015年6月25日星期二21:35:59 GMT + 0800(香港时间)"。

提前感谢您的帮助。

// get the data range
var lastRow = spreadsheet.getSheetByName("Form responses 1").getLastRow();
var responsesvalues = spreadsheet.getSheetByName("Form responses 1").getRange("A1:Q" + lastRow).getValues();

// get the last row in column G with non-zero value and corresponding date
for (; responsesvalues[lastRow - 1][6] == "" && lastRow > 0; lastRow--) {}
var GLastNonZero = responsesvalues[lastRow - 1][6];
var GLastNonZeroDate = new Date('responsesvalues[lastRow - 1][0]').getTime();

// get the last row in column I with non-zero value and corresponding date
var lastRow = spreadsheet.getSheetByName("Form responses 1").getLastRow();
for (; responsesvalues[lastRow - 1][8] == "" && lastRow > 0; lastRow--) {}
var ILastNonZero = responsesvalues[lastRow - 1][8];
var ILastNonZeroDate = new Date('responsesvalues[lastRow - 1][0]').getTime();

1 个答案:

答案 0 :(得分:0)

没有电子表格来测试这只是一个"应该可以正常工作" -attempt

1)使用额外的变量来计算每列的最后一行 我使用i来计算电子表格最后填充的行与列的最后填充行之间的差异。 .getLastRow()的文档没有说明该值是否为零。因此脚本中的评论

2)删除new Date()来电

中的引号
// get the data range
var lastRow = spreadsheet.getSheetByName("Form responses 1").getLastRow();
var responsesvalues = spreadsheet.getSheetByName("Form responses 1").getRange("A1:Q" + lastRow).getValues();
var i;

// get the last row in column G with non-zero value and corresponding date
for (i = 0; i <= lastRow; i++) {
    if (responsesvalues[lastRow - 1][6] !== "") {
        break;
    }
}
var GLastNonZero = responsesvalues[lastRow - i - 1][6];     // not sure about the -1
var GLastNonZeroDate = new Date(responsesvalues[lastRow - i - 1][0]).getTime();         // not sure about the -1

// get the last row in column I with non-zero value and corresponding date
for (i = 0; i <= lastRow; i++) {
    if (responsesvalues[lastRow - 1][8] !== "") {
        break;
    }
}
var ILastNonZero = responsesvalues[lastRow - i- 1][8];      // not sure about the -1
var ILastNonZeroDate = new Date(responsesvalues[lastRow - i - 1][0]).getTime();     // not sure about the -1