从电子表格中提取日期时遇到问题

时间:2018-07-29 17:11:11

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

我正在使用Google脚本,这是我的问题。

我正在尝试将今天的日期与在电子表格的C列中输入的日期进行比较。我所拥有的代码似乎应该可以工作,但是当我使用记录器查看日期时,它给出的日期是“ Wed Dec 31 19:00:00 GMT-05:00 1969”,而不是2018-07-29 1:00 PM。

我知道我需要使用Utilities.formatDate进行比较,但我似乎无法理解为什么它没有在C列中提取日期。

以下是我的代码:

function sendEmail() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var startRow = 3;  // First row of data to process
 var numRows = sheet.getLastRow()-1;   // Number of rows to process
 // Fetch the range of cells A2:B3
 var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
 // Fetch values for each row in the Range.
 var data = dataRange.getValues();
 //Logger.log(data); // give you the data you are looking at comparing


for (var i in data) {
 var row = data[i];
 var date = new Date();
 //Logger.log(date); // sets to todays date and time.
 var sheetDate = new Date(row[3]);
 Logger.log(sheetDate); // date in the row you are comparing

1 个答案:

答案 0 :(得分:1)

您不在看C列中的值。方法getValues()返回一个二维数组,arrays are 0-indexed。这意味着在定义sheetDate时应使用2(而不是3)。

var sheetDate = new Date(row[2]);

如评论中所述,您无需使用Utilities.formatDate(),但这是一个单独的问题。我还尝试在将该值转换为日期之前记录该值(例如Logger.log(row[2]))。