【发布时间】:2020-07-29 15:21:54
【问题描述】:
我正在尝试弄清楚如何在 google 应用程序脚本中为函数创建一次性触发器。
基本上,我希望能够安排一个事件发生,比如说明天下午 2 点。我不希望它成为重复事件(我看到谷歌的所有文档都是关于重复事件的)。
我不断收到此错误Exception: You cannot schedule an event in the past. (line 17, file "Code"
欢迎任何解释/帮助。
function trigger(){
var rawdate = "2020-07-29T11:30";
var time = rawdate.substr(11).split(':');
var durationMilliseconds = time[0] * 3600000 + time[1] * 60000;
var year = rawdate.substr(0,4);
var month = rawdate.substr(5,2);
var date = rawdate.substr(8,2);
ScriptApp.newTrigger("myFunction")
.timeBased()
.atDate(year, month, date)
.after(durationMilliseconds)
.inTimezone("America/New_York")
.create();
}
【问题讨论】:
-
如果正在使用
after()方法,则不应使用atDate()方法。我猜想首先评估atDate()方法,并且因为您使用的是今天的日期,所以它正在将日期评估为今天,就在一天开始的午夜之后,这是过去。今天 00:00 是过去的时间。after()方法不会为atDate()方法增加时间。after()方法自动确定创建时的当前时间戳,然后从那里开始。 -
知道了,任何想法如何创建我想要的日期和时间戳。我如何安排未来某个时间的活动? (我在 html 中从用户那里获取输入)
标签: javascript date google-apps-script