繁体   English   中英

Google-apps-script 日期比较。 无法比较每月的第一天。 获取月份()

[英]Google-apps-script date comparison. Can't compare first day of the month. getMonth()

编辑:没有错误。 不知何故,谷歌脚本中的项目设置被设置为错误的时区。 啊…… :D

我不明白为什么当我在“var sheetDate”中从我的工作表中收集日期并将其与“var date”进行比较时,每个日期都有效并且发送电子邮件,从 02.01.2020 到 31.01.2020 但不是 01.01.2020。

我使用 .getmonth() 进行比较,因此该脚本可以每月运行一次,持续数年。 01.01 有什么特别之处,它不起作用吗?

function sendEmail() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 1;  // First row of data to process
  var numRows = sheet.getLastRow();   // Number of rows to process
  // Fetch the range of cells
  var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  Logger.log(data)

  for (var i in data) {
    var row = data[i];
    var date = new Date();
    var sheetDate = new Date(row[18]);
        if (date.getMonth() == sheetDate.getMonth()){
          var emailAddress = row[19];  // Email
          var message = row[1];       // Info
          var subject = row[11];
          MailApp.sendEmail(emailAddress, subject, message);
          Logger.log('SENT :'+emailAddress+'  '+subject+'  '+message)
    }    
  }
}

编辑:请求的日志

 [20-01-04 15:03:48:762 CET] Sheetdate:Wed Jan 01 2020 18:00:00 GMT-0500 (EST)
[20-01-04 15:03:48:764 CET] Date:Sat Jan 04 2020 09:03:48 GMT-0500 (EST)
[20-01-04 15:03:48:764 CET] date.getMonth():0
[20-01-04 15:03:48:765 CET] sheetdate.getMonth():0
[20-01-04 15:03:48:837 CET] Sheetdate:Tue Jan 03 2023 18:00:00 GMT-0500 (EST)
[20-01-04 15:03:48:838 CET] Date:Sat Jan 04 2020 09:03:48 GMT-0500 (EST)
[20-01-04 15:03:48:839 CET] date.getMonth():0
[20-01-04 15:03:48:839 CET] sheetdate.getMonth():0
[20-01-04 15:03:48:934 CET] Sheetdate:Thu Jan 02 2020 18:00:00 GMT-0500 (EST)
[20-01-04 15:03:48:935 CET] Date:Sat Jan 04 2020 09:03:48 GMT-0500 (EST)
[20-01-04 15:03:48:936 CET] date.getMonth():0
[20-01-04 15:03:48:936 CET] sheetdate.getMonth():0
[20-01-04 15:03:48:998 CET] Sheetdate:Fri Jan 31 2020 18:00:00 GMT-0500 (EST)
[20-01-04 15:03:48:999 CET] Date:Sat Jan 04 2020 09:03:48 GMT-0500 (EST)
[20-01-04 15:03:48:999 CET] date.getMonth():0
[20-01-04 15:03:49:000 CET] sheetdate.getMonth():0

表的一部分的图像

function sendEmail() {
  var sh=SpreadsheetApp.getActive();
  var rg=sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn());
  var data=rg.getValues();
  for(var i=0;i<data.length;i++) {
    var toda=new Date().valueOf();
    var dt=new Date(data[i][18]);
    var s=new Date(dt.getFullYear(),dt.getMonth(),1).valueOf();//beginning of month
    var e=new Date(dt.getFullYear(),dt.getMonth()+1,0).valueOf();//end of month
    if (toda>=s && toda<=e){
      var emailAddress=data[i][19];  
      var message=data[i][1];       
      var subject=data[i][11];
      MailApp.sendEmail(emailAddress, subject, message);
      Logger.log('SENT :'+emailAddress+'  '+subject+'  '+message)
    }    
  }
}

编辑:没有错误。 不知何故,谷歌脚本中的项目设置被设置为错误的时区。 啊... :D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM