我正在使用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
答案 0 :(得分:1)
您不在看C列中的值。方法getValues()
返回一个二维数组,arrays are 0-indexed。这意味着在定义sheetDate
时应使用2(而不是3)。
var sheetDate = new Date(row[2]);
如评论中所述,您无需使用Utilities.formatDate()
,但这是一个单独的问题。我还尝试在将该值转换为日期之前记录该值(例如Logger.log(row[2])
)。