[英]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
以防止触发器在特定的范围日期运行,例如:
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.