我有一个脚本,以防止触发器在特定时间运行,感谢Amit Agarwal谁帮助我在this thread
脚本是这样的:
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
条件好吗?
谢谢 !
您可以通过将当前日期与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 docs here的更多信息。
您可以在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;
我已经为||
改变了&&
,现在工作得很好。
最终的代码是:
else if (date >= new Date('2019-03-10T15:00:00') && date <= new Date('2019-04-25T17:00:00')) {
return false;
}
谢谢你的帮助!