因此,基本上,下面的代码是删除当前触发器,并在满足条件时设置具有相同功能和新日期的新触发器。
但是,当我尝试运行脚本时,出现错误“您的日值无效”。在“ .create”行。

我已经尝试使用logger.log我的“现在”变量,这应该是我的新日期,并且它像这样“我认为是正确的日期”“ Sun Dec 08 08:44:12 GMT + 08:00 2019”弹出。



function setTriggerCycle2() {

  var ss = SpreadsheetApp;
  var ss2 = ss.getActiveSpreadsheet();
  var fR1 = ss2.getSheetByName("Auto9 (LUDY) Carbon Treatment Checklist");
  var ranges = fR1.getRange(3, 1, fR1.getLastRow(), 32).getValues();


  ranges.forEach(function(row, i) {


    var CuTankNo = row[2];
    var DateSubmitted = row[0];
    var EmailSent = row[9];
    var triggerSetted = row[8];
    var now = new Date();
    now.setHours(now.getHours() + 3984)

    if (CuTankNo == "Cu Tank #2 Pos #45 & 48") {

      if (triggerSetted == "") {

        var triggers = ScriptApp.getProjectTriggers();
        for (var i in triggers) {

          if (triggers[i].getHandlerFunction() == "sendEmailCuTank2") {

            ScriptApp.deleteTrigger(triggers[i]);


          }

          Logger.log(now);

          ScriptApp.newTrigger('sendEmailCuTank2')
            .timeBased()
            .atDate(now.getYear(), now.getMonth(), now.getDay())
            .create();

          fR1.getRange(i + 3, 9).setValue("Trigger_Setted");


        }


      }

    }

  })
}

最佳答案

.atDate(now.getYear(), now.getMonth(), now.getDay())上使用getDay()代替getDate()


getDay()返回星期几,0代表星期日,1代表星期一,依此类推。
getDate()返回月中的某天,第一天为1,第二天为2,依此类推。

关于javascript - 我收到一条错误消息,指出“您的日值无效”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56745488/

10-13 04:54