比较Google表格中的日期

时间:2016-07-28 21:03:47

标签: java email date google-sheets

我是Java和Google Script Editor的新手。我在Google工作表中有一个自定义CRM电子表格,并希望根据定期安排的后续日期设置提醒电子邮件。我遇到了代码问题。我认为麻烦可能是因为我试图将日期与字符串进行比较,但我无法弄清楚如何让它发挥作用。

目标是在跟进日期与今天的日期匹配时发送电子邮件。后续日期根据公式计算。

即使日志显示:

[16-07-28 13:38:06:549 PDT]日期是2016年7月28日星期四00:00:00 GMT-0700(PDT)

[16-07-28 13:38:06:549 PDT]今天是2016年7月28日星期四00:00:00 GMT-0700(PDT)

我的If语句if(date == todayFull)不起作用。这是代码:

function sendEmails() {
  var ss = SpreadsheetApp.openById("number");
  var sheet = ss.getSheetByName("Script");
  var startRow = 2;  // First row of data to process

  var lastRow = sheet.getLastRow();   
  var lastCol = sheet.getLastColumn();


  // Fetch the range of cells
  var dataRange = sheet.getRange(2, 1, lastRow, lastCol);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();

  for (var i = 0; i < data.length; ++i) {

    var row = data[i];
    var date = row[32];
    var todayFull = new Date();
    todayFull.setHours(0);
    todayFull.setMinutes(0);
    todayFull.setSeconds(0);

    Logger.log("Date is "+date);
    Logger.log("Today is "+todayFull);

   if (date == todayFull) {
    Logger.log("This is a test. The Date is Today");
    //  var emailAddress = row[28];  // Email column
    //  var groupName = row[3];       // Group Name column
    //  var subject = "Follow up with this group right now!";
    // MailApp.sendEmail(emailAddress, subject, groupName);
    };

  };
}

2 个答案:

答案 0 :(得分:1)

感谢您的帮助。第一个答案结束了大部分工作。使用.getDate()有帮助,但我还必须添加月和年的参数。这是我最终得到的代码:

HOST="$(hostname -s | sed 's/..$//; s/.*/\L&/')"

答案 1 :(得分:0)

您正在比较两种不同的数据类型:

var date      = row[32];    // reads in a String object
var todayFull = new Date(); // creates a new Date (now) object
...

if (date == todayFull) {    // compares Date with String
...
}

当您从工作表中读取值,然后比较那些Date对象的实际日期(以给定日期的00:00:00:00)时,您可能最好创建Date对象,就像您一样似乎打算这样做:

var date      = new Date(row[32]); // creates a new Date (date in string) object
var todayFull = new Date();        // creates a new Date (now) object
todayFull.setHours(0,0,0,0)        // sets time to midnight of current day

...

// compare Date with Date
if (date.getTime() == todayFull.getTime()) { 
...
}

请参阅MDN的优秀documentation on Javascript's Date

相关问题