繁体   English   中英

Google应用脚本可停止特定日期范围内的触发器

[英]Google apps script to stop the trigger on specific date ranges

我有一个脚本可以阻止触发器在特定时间运行,这要归功于Amit Agarwal帮助我完成这个线程

脚本是这样的:

function shouldRunTrigger() {
  var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
  var date = new Date();
  var day = days[date.getDay()];
  var hours = date.getHours();
  if ((day === "Fri" && hours >= 17) || (day === "Sat" && hours <= 22)) {
    return false;
  }
  return true;
}

function myTrigger() {
  if (!shouldRunTrigger()) return;
  // trigger code here
}

此代码可以防止我的触发器从周五下午5点到周六晚上10点运行,并且它工作得很好。

现在我需要的是添加另一个else if以防止触发器在特定的范围日期运行,例如:

  • 我想不要在3月23日下午3点到3月25日下午5点之间运行它
  • 我试图做到这一点而没有运气

if else条件,有人可以帮助我添加此if else吗?

谢谢 !

您可以通过将当前日期与Date对象进行比较来完成此操作,如下所示:

function shouldRunTrigger() {
  var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
  var date = new Date();
  var day = days[date.getDay()];
  var hours = date.getHours();
  if ((day === "Fri" && hours >= 17) && (day === "Sat" && hours <= 22)) {
    return false;
  }
  else if(date >= new Date('2019-03-23T15:00:00') || date <= new Date('2019-03-25T17:00:00')) {
    return false;
  }
  return true;
}

function myTrigger() {
  if (!shouldRunTrigger()) return;
  // trigger code here
}

JavaScript中的Date对象采用YYYY-MM-DDTHH:MM:SS格式。 来自MDN Web文档的更多信息,请点击此处

您可以在ShouldRunTrigger()方法中添加另一个检查。

var current = new Date()
var min = new Date(2019,2,23,15);
var max = new Date(2019,2,25,17);
if (current > min && current < max) return false;

我改变了|| for &&现在工作得很好。

最终的代码是:

else if (date >= new Date('2019-03-10T15:00:00') && date <= new Date('2019-04-25T17:00:00')) {
    return false;
}

谢谢你的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM