Google Script timeBased Trigger

时间:2018-01-04 06:10:08

标签: google-apps-script google-sheets-api

我正在尝试在Google脚本中创建一个基于时间的触发器,以便在指定日期每天凌晨1点执行一次incrementCell功能。当试图在

下面运行时
ScriptApp.newTrigger("incrementCell").timeBased().atDate(2018, 1, 4).atHour(1).everyWeeks(52).create();

我收到了"Already chosen a specific date time with at() or atDate()."错误。

有趣的是,下面的行不会出错:

ScriptApp.newTrigger("incrementCell").timeBased().atDate(2018, 1, 4).create();

请帮忙。

1 个答案:

答案 0 :(得分:2)

Google Apps脚本不支持年度触发器,但您可以使用变通方法。创建每月1日运行的月度触发器,如果​​月份是1月,则运行实际功能。

function createYearlyTrigger() {
  ScriptApp.newTrigger("shouldTriggerRun")
  .timeBased().onMonthDay(1).atHour(1).create();
}

function shouldTriggerRun() {
  var date = new Date();
  if (date.getMonth() === 0) {
    incrementCell();
  }  
}