use*_*314 3 javascript google-apps-script
目前,我将“我的触发器”与时间驱动->日计时器->上午 7 点到上午 8 点 (GMT+08:00) 一起使用,结果,我的脚本在上午 7:11:45 运行。还早呢。
我的问题是,是否可以在每天上午 7:55:00 等确切时间触发 Google 表格?
您需要以下四个功能:
setTrigger()
:该函数负责删除之前的触发器并创建新的触发器function_Triggered
。您唯一需要做的就是在早上 7 点之前(例如早上 6 点至 7 点)为该功能设置每日触发器。以下函数只是帮助程序,您不需要(手动)执行它们。
scheduledTrigger(hours,minutes)
:此函数接受时间(小时和分钟),并负责创建计划触发器function_Triggered
。
deleteTriggers()
:此函数删除 的所有当前触发器(在本例中只有一个)function_Triggered
。
function_Triggered()
:此函数包含您想要每天早上 7:55 执行的代码。
function setTrigger() {
deleteTriggers();
scheduledTrigger(7,55);
}
function scheduledTrigger(hours,minutes){
var today_D = new Date();
var year = today_D.getFullYear();
var month = today_D.getMonth();
var day = today_D.getDate();
pars = [year,month,day,hours,minutes];
var scheduled_D = new Date(...pars);
var hours_remain=Math.abs(scheduled_D - today_D) / 36e5;
ScriptApp.newTrigger("function_Triggered")
.timeBased()
.after(hours_remain * 60 *60 * 1000)
.create()
}
function deleteTriggers() {
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
if ( triggers[i].getHandlerFunction() == "function_Triggered") {
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
function function_Triggered() {
// your function code here
}
Run Code Online (Sandbox Code Playgroud)
每天在 8:00、12:30、17:00 运行 Gmail Google Apps 脚本