【问题标题】:Trigger every 14 days starting on a specific date从特定日期开始每 14 天触发一次
【发布时间】:2015-05-31 18:27:30
【问题描述】:

我正在尝试触发 google 表格中的电子表格以每 14 天重置一次,但我需要它在某个日期开始执行此操作(它与公司时间表无关)。这是我的工作原理,每 14 天触发一次...

function test() {

ScriptApp.newTrigger("14day_trigger")
   .timeBased()
   .everyDays(14)

Browser.msgBox('Testing!');

我想开始 2015 年 06 月 12 日的 14 天周期。我尝试使用 .atDate ...

function test() {

ScriptApp.newTrigger("14day_trigger")
   .timeBased()
   .atDate(2015, 06, 12) 
   .everyDays(14)

Browser.msgBox('Testing!');

但这给出了错误 -

已经用 at() 或 atDate() 选择了一个特定的日期时间。

谁能帮帮我?

【问题讨论】:

  • 您无法创建具有冲突时间标准的单个基于时间的触发器。相反,请分两部分考虑问题。首先,设置在初始日期触发的触发器。然后,一个处理重复的触发器 - 这可以在触发器函数本身内完成,在未来 2 周内运行。 (即不会有.everydays() 条件)

标签: google-apps-script triggers event-triggers


【解决方案1】:

创建三个函数:

function triggerAtDate() {
  ScriptApp.newTrigger("atDateTrigger")
    .timeBased()
    .atDate(2015, 06, 12)
    .create();
};

function 14day_trigger() {
  ScriptApp.newTrigger('resetItself')
    .timeBased()
    .everyDays(14)
    .create();
};

function resetItself() {
  SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].clearContents();
};

然后在脚本编辑器中运行第一个函数。 一次性触发器运行后,不再需要它,您可以将其删除。

您可以等待触发器运行的那一天,然后在当天手动创建 14 天触发器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    相关资源
    最近更新 更多