代码之家  ›  专栏  ›  技术社区  ›  Divshal Sharma

谷歌表单中谷歌脚本的每日时间限制

  •  1
  • Divshal Sharma  · 技术社区  · 7 年前

    我已经准备好了一个谷歌表单,但我希望对其设置一个时间限制,使其每天早上8点(开始接受回复)到下午5点(停止接受回复)上线。我在这里找到了我想要的东西 https://www.labnol.org/internet/schedule-google-forms/20707/ .

    这是我在谷歌脚本中的脚本。

    function oc() {
    
      ScriptApp.newTrigger('openForm')
         .timeBased()
         .everyDays(1)
         .atHour(8)
         .create();
    
      ScriptApp.newTrigger('closeForm')
         .timeBased()
         .everyDays(1)
         .atHour(16)
         .create();
    }
    
    function openForm() {
      var form = FormApp.getActiveForm();
      form.setAcceptingResponses(true);
    }
    
    function closeForm() {  
      var form = FormApp.getActiveForm();
      form.setAcceptingResponses(false);
      deleteTriggers_();
    }
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   desertnaut SKZI    4 年前

    这个示例脚本怎么样?

    1. oc() ,请先跑 initTrigger() .由此, oc()
      • initTrigger()
    2. 什么时候 oc() openForm() closeForm() 已删除。
    3. 然后,启动的触发器 openForm() openForm() 分别是今天上午8:00和下午5:00。

    脚本:

    function initTrigger(){
      ScriptApp.newTrigger('oc').timeBased().atHour(0).everyDays(1).create();
    }
    
    function oc() {
      ScriptApp.getProjectTriggers().forEach(function(e){
        if(e.getHandlerFunction() == "openForm" || e.getHandlerFunction() == "closeForm") {
          ScriptApp.deleteTrigger(e)
        }
      });
    
      var time = new Date()
      time.setHours(8);
      time.setMinutes(0);
      ScriptApp.newTrigger("openForm").timeBased().at(time).create();
    
      time.setHours(17);
      time.setMinutes(0);
      ScriptApp.newTrigger("closeForm").timeBased().at(time).create();
    }
    
    function openForm() {
      var form = FormApp.getActiveForm();
      form.setAcceptingResponses(true);
    }
    
    function closeForm() {  
      var form = FormApp.getActiveForm();
      form.setAcceptingResponses(false);
      // deleteTriggers_();
    }