Date 如果单元格中的日期与今天的日期匹配,则发送自动电子邮件

Date 如果单元格中的日期与今天的日期匹配,则发送自动电子邮件,date,email,google-apps-script,google-sheets,Date,Email,Google Apps Script,Google Sheets,当今天的日期等于google工作表中某个单元格的日期时,我正在尝试使用此代码发送电子邮件 调试图像显示“today”和“dates”变量都是相同的,有什么我遗漏的吗 function emailAlert() { // today's date information var today = new Date(); today.setHours(0,0,0,0); // getting data from spreadsheet var sheet = Spreadshe

当今天的日期等于google工作表中某个单元格的日期时,我正在尝试使用此代码发送电子邮件

调试图像显示“today”和“dates”变量都是相同的,有什么我遗漏的吗

function emailAlert() {
  // today's date information
  var today = new Date();
  today.setHours(0,0,0,0); 

  // getting data from spreadsheet
  var sheet = SpreadsheetApp.getActive().getSheetByName('Master');
  var range = sheet.getRange(1,3); 
  var dates = range.getValue();
  dates.setHours(0,0,0,0); 
  var range2 = sheet.getRange(1,8)
  var emails = range2.getValue();

  if(dates == today){

   MailApp.sendEmail(emails,'Test','Test')

  }

使用
getTime()
比较它们,因为直接比较日期对象是不起作用的

最终代码: 输出:

太棒了,是的,现在可以完美地工作了!非常感谢。知道为什么日期对象不可比较而getTime可比较吗?
getTime
返回一个表示日期的时间等价物的数字,这就是为什么比较容易的原因。首先,对象比较从来都不是一个好主意。嗨@Joey Robbins,如果我们回答了您的问题,请单击左侧的“接受”按钮(选中图标)。通过这样做,社区中其他可能与您有相同关注的人将知道他们的问题可以得到解决。如果“接受”按钮不可用,请随时告诉我。
function emailAlert() {
  // today's date information
  var today = new Date();
  today.setHours(0,0,0,0); 
  Logger.log(today);

  // getting data from spreadsheet
  var sheet = SpreadsheetApp.getActive().getSheetByName('Master');
  var range = sheet.getRange(1,3); 
  var dates = range.getValue();
  dates.setHours(0,0,0,0);

  Logger.log(dates);
  var range2 = sheet.getRange(1,8)
  var emails = range2.getValue();

  // using getTime() for comparison
  if(dates.getTime() == today.getTime()){
    Logger.log("sending mail")
    // MailApp.sendEmail(emails,'Test','Test')
  }
}