【问题标题】:Local time vs Script time and Trigger time in Google apps scriptGoogle 应用程序脚本中的本地时间与脚本时间和触发时间
【发布时间】:2017-06-22 01:36:08
【问题描述】:

脚本时间设置为 GMT 00

脚本接受用户的日期和时间

用户从日期时间字段设置本地日期时间

用户点击设置按钮

这将在 GMT 时间创建一个触发器,如何让它在本地时间触发?

function onOpen() {
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
        .createMenu('Custom Menu').addItem('Show sidebar', 'showSidebar').addToUi();
}

function showSidebar() {
    var html = HtmlService.createHtmlOutputFromFile('Sidebar').setTitle('My custom sidebar').setWidth(300);
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
        .showSidebar(html);
}

function sendEmail() {
    GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), 'Reminder C Email', 'Reminding you about...');
}

function create(AT) {
    SpreadsheetApp.getUi().alert(AT)
    var at = moment(AT);
    ScriptApp.newTrigger('sendEmail').timeBased().at(new Date(at)).inTimezone(getDefaultUserTimeZone()).create();
}
//script timezone is GMT 00
function getDefaultUserTimeZone() {
    if (CalendarApp.getDefaultCalendar()) return CalendarApp.getDefaultCalendar().getTimeZone();
    else return 'Etc/GMT';
}

【问题讨论】:

    标签: javascript datetime google-apps-script datetimepicker


    【解决方案1】:

    如果您访问日历的唯一原因是获取默认时区,那么我不会这样做。您可以从电子表格中获取默认的用户时区。

    ssTimeZone = SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone();
    

    既然您已经在使用电子表格,为什么不直接使用它呢?

    function create(AT, l)
    {
      var ssTimeZone;
    
      //SpreadsheetApp.getUi().alert(AT)
      var at = moment(AT);
    
      var offsetTime = new Date(new Date(at).getTime() + l * 60 * 1000);
    
      ssTimeZone = SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone();
    
      //showAlert(offsetTime)
      ScriptApp.newTrigger('sendEmail').timeBased()
        .at(new Date(offsetTime))
        .inTimezone(ssTimeZone)
        .create();
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2022-07-27
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多