Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Triggers 是否可以在谷歌应用程序中设置时钟触发器,每小时发送一次电子表格?_Triggers_Google Apps Script - Fatal编程技术网

Triggers 是否可以在谷歌应用程序中设置时钟触发器,每小时发送一次电子表格?

Triggers 是否可以在谷歌应用程序中设置时钟触发器,每小时发送一次电子表格?,triggers,google-apps-script,Triggers,Google Apps Script,我有一个电子表格,在谷歌硬盘上记录接听和未接来电。 目前设置为在上午10点到晚上7点之间每小时发送一封电子邮件 理想情况下,我希望它不发送电子邮件在周末。 设置从周一到周五的每小时使用太多触发器 有没有一种方法可以构建一个触发器,只在周一到周五每小时(上午10点到晚上7点)发送一封电子邮件 我已经阅读了谷歌的文档和一些(事实证明是不相关的)例子,我被难住了 我试着把一堆触发条件放在一起: function autoSendHourly() { ScriptApp.newTrigger("hour

我有一个电子表格,在谷歌硬盘上记录接听和未接来电。 目前设置为在上午10点到晚上7点之间每小时发送一封电子邮件

理想情况下,我希望它不发送电子邮件在周末。 设置从周一到周五的每小时使用太多触发器

有没有一种方法可以构建一个触发器,只在周一到周五每小时(上午10点到晚上7点)发送一封电子邮件

我已经阅读了谷歌的文档和一些(事实证明是不相关的)例子,我被难住了

我试着把一堆触发条件放在一起:

function autoSendHourly() {
ScriptApp.newTrigger("hourlyUpdate()")
   .timeBased()
   .onWeekDay(ScriptApp.WeekDay.MONDAY)
   .onWeekDay(ScriptApp.WeekDay.TUESDAY)
   .onWeekDay(ScriptApp.WeekDay.WEDNESDAY)
   .onWeekDay(ScriptApp.WeekDay.THURSDAY)
   .onWeekDay(ScriptApp.WeekDay.FRIDAY)
   .atHour(10)
   .atHour(11)
   .atHour(12)
   .atHour(13)
   .atHour(14)
   .atHour(15)
   .atHour(16)
   .atHour(17)
   .atHour(18)
   .atHour(19)
   .create();
}
我并不完全惊讶于它不起作用,但我有点惊讶于它没有抛出错误


任何帮助(包括“你疯了,它做不到”)都将不胜感激。

我已经有一段时间没有玩弄java了,但本文可能会有所帮助

如果是我,我会得到一周中的某一天,并在交换机中检查它。然后,如果它与一周中的某一天相匹配,则调用函数检查上午10点到晚上7点之间的时间


祝您好运。

最简单的方法是像您那样使用create触发器,但每天每小时使用一次,然后在处理程序函数中添加一小段代码,如果日期和时间不满足中解释的特定条件,将返回该代码

代码可能如下所示:

function officeHours(){
  var nowH=new Date().getHours();
  var nowD=new Date().getDay();
  Logger.log('day : '+nowD+'   Hours : '+nowH)
  if(nowH>17||nowH<8||nowD==6||nowD==0){return}
  Browser.msgBox('time to work !');//normally your real function should begin here...
}
功能办公时间(){
var nowH=新日期().getHours();
var nowD=新日期().getDay();
Logger.log('day:'+nowD+'Hours:'+nowH)

如果(nowH>17 | | nowHI)我自己刚刚得出了这个结论。我犯了一个错误,只是专注于尝试使用触发器,而不是做明智的事情。谢谢。