首页 文章

替换Google文档模板中的文本时更改时间戳

提问于
浏览
1

我有一个Google表格,供客户输入Catering的活动详情 . 然后,App Script会创建Google日历活动,打开Google文档模板以替换相应的文本,将文档转换为pdf并通过电子邮件向我发送一份副本,然后再将其从驱动器中删除 .

在这里的代码中 Calendar Event 正在使用“ var timeString ” . 并且 Rename Text in Document 在电子表格中使用“ var timeFormat " in order to not show the seconds and GSM. They both are pulling the data from the " time = newRequest[0][14] ”单元格 . 但由于某些原因我无法解释何时输入10:15,10:45,11:15,11:45,12:15和12:45,脚本会将文档模板上的时间更改为** :10,**:40 . 它没有理解为什么会这样,请帮忙吗?

//rename data into useable tags  
  timestamp = newRequest[0][0],
  company = newRequest[0][1],
  contact_name = newRequest[0][2],
  contact_email = newRequest[0][3],
  contact_phone = newRequest[0][4],
  onsite_name = newRequest[0][5],
  onsite_phone = newRequest[0][6],
  pickup_delivery = newRequest[0][7],
  day = newRequest[0][8],
  address = newRequest[0][9],
  location = newRequest[0][10],
  parking = newRequest[0][11],
  guests = newRequest[0][12],
  other = newRequest[0][13],
  time = newRequest[0][14];
  date = newRequest[0][15]

//create new calendar event  
  var dateString = date.toDateString();
  var dateFormat = dateString.substr(4,11);
  var timeString = time.getHours() + ":" + time.getMinutes();
  var timeFormat = time.toLocaleTimeString().substr(0,4) + time.toLocaleTimeString().substr(7,4);
  var endtimeString = (time.getHours() + 1) + ":" + time.getMinutes();
  var calendar = CalendarApp.getCalendarById('haleyhouse.org_1oicreouarl3je785ltupuoppg@group.calendar.google.com');
  var event = calendar.createEvent(contact_name + ", " + company + ", " + contact_phone, 
      new Date(dateString + " " + timeString), 
      new Date(dateString + " " + endtimeString), 
      {description: timestamp + " received form request - google", location: address});

//rename text in the document
  copyBody.replaceText('keyDay', day);
  copyBody.replaceText('keyDate', dateFormat)
  copyBody.replaceText('keyTime', timeFormat)
  copyBody.replaceText('keyCompany', company);
  copyBody.replaceText('keyContact_Name', contact_name);
  copyBody.replaceText('keyContact_Email', contact_email);
  copyBody.replaceText('keyContact_Phone',contact_phone);
  copyBody.replaceText('keyOnsite_Name', onsite_name);
  copyBody.replaceText('keyOnsite_Phone', onsite_phone);
  copyBody.replaceText('keyDelivery', pickup_delivery);  
  copyBody.replaceText('keyAddress', address);
  copyBody.replaceText('keyLocation', location);
  copyBody.replaceText('keyGuests', guests);

1 回答

  • 0

    在应用程序脚本中,Utilities.formatDate()是您的朋友 .

    试试这个:

    var startDate = dateString+' '+time;
      var timeFormat = Utilities.formatDate(new Date(startDate), Session.getScriptTimeZone(), 'hh:mm');
      Logger.log(timeFormat)
    

    确保脚本项目属性设置为正确的时区 .

相关问题