- Вы хотите запускать функцию
TimeTrigger()
только в 22:00:00 каждый день. - Часовой пояс использует ваш часовой пояс.
Еслимое понимание верно, как насчет этой модификации? Пожалуйста, подумайте об этом как об одном из нескольких ответов.
Точки модификации:
- Когда вы запускаете скрипт только в 22:00, как насчет следующего
ScriptApp.newTrigger('TimeTrigger').timeBased().at(setTime).create()
- После срабатывания триггера он удаляет завершенный триггер. Поскольку завершенный триггер оставлен.
Последовательность действий этого измененного сценария следующая.
Поток:
- Сначала запустите функцию
startScript()
. Этим устанавливается триггер для запуска createDayTrigger()
. - Этот триггер запускается около 21:00 каждый день.
- Эта функция требуется для запуска только один раз.
- По триггеру, установленному с помощью
startScript()
, createDayTrigger()
запускается в 21:00 (Specifies the hour the trigger will run (plus or minus 15 minutes).
Ref ). createDayTrigger()
установить триггер для запуска TimeTrigger()
в 22:00.
- В 22:00 запускается
TimeTrigger()
. В настоящее время триггер, установленный с помощью createDayTrigger()
, сбрасывается с помощью deleteTrigger()
.
Поскольку триггер, установленный с помощью startScript()
, существует, createDayTrigger()
запускается в 21:00. К этому циклу TimeTrigger()
можно запускать в 22:00 каждый день.
Модифицированный скрипт:
Пожалуйста, скопируйте и вставьте следующий скрипт в редактор скриптов. И, пожалуйста, запустите функцию startScript()
. Пожалуйста, запустите эту функцию только один раз. При этом устанавливается базовый триггер.
// Your script.
function TimeTrigger() {
deleteTrigger();
// Below script is your script.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tickerprüfung');
sheet.getRange('C2').setValue(new Date());
var date = new Date();
date.setHours(22);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
sheet.getRange('C3').setValue(date);
}
// Delete finished trigger.
function deleteTrigger() {
var triggers = ScriptApp.getProjectTriggers();
triggers.forEach(function(t) {
if (t.getHandlerFunction() == "TimeTrigger") ScriptApp.deleteTrigger(t);
});
}
function createDayTrigger() {
var d = new Date();
d.setHours(22);
d.setMinutes(0);
d.setSeconds(0);
ScriptApp.newTrigger('TimeTrigger').timeBased().at(d).create();
}
// Please run this function.
function startScript() {
ScriptApp.newTrigger('createDayTrigger').timeBased().everyDays(1).atHour(21).create();
}
Ссылки:
Если я неправильно понял ваш вопрос, а это не то направление, в котором вы хотите, прошу прощения.