这是我从一开始的问题......我真的需要别人的帮助......
我需要为我的企业创建一个活动预订系统。我创建了一个 Google 表单来将预订输入到电子表格中,然后我需要一些代码来自动将这些数据传输到我帐户中的相关 Google 日历中。我找到了创建此代码的人,与他们共享了 google 表单/电子表格,以便他们可以创建代码。
以下是他们创建的代码:
我可以在表单中输入信息,进行提交,它们都出现在正确的日期,您可以通过代码看到它将根据开始创建一个全天事件(如果我在其中一个列中输入了全天)时间(开始时间)。
我的问题是,当我提交正确的条目时,突然间我的正确条目开始出现在我日历的前一天。这恰好发生在我晚上 11 点之后提交的任何条目上。我不确定问题是什么,但我相信这可能与时区有关。我在英国,它是 GMT+0000,为我制作剧本的人在印度。我已经读过,当您更改脚本的时区时,触发器不会自动更改(它们保持原始时区)。
如果我在一定时间后提交它们,这是否会导致我的条目突然出现在我的日历中,即使电子表格中的所有内容都是正确的???
我可以通过编辑代码以根据结束时间(enddt)而不是 startdt 创建全天事件来临时解决此问题,但这仅适用于一小段时间。直到上午 11 点,我可能必须将代码改回来?这一切都非常令人困惑。
如果是时区问题,有人可以告诉我如何找出触发器的时区,如果它们错了,我该如何在脚本中编辑触发器的时区。我真的被困住了,因为我需要这个来为我的业务进行预订,而不会因为让他们出现在错误的日期而感到困惑。
我所有的日历、电子表格、表格和脚本都是 GMT+0000
我将在下面复制并粘贴我的脚本,并加强我可以编辑的全天活动部分,以暂时对问题进行排序,直到它再次变回是否有帮助?
var ss = SpreadsheetApp.getActive();
/*function onEdit(e) {
var doc = SpreadsheetApp.getActiveSheet();
setRowColors();
Browser.msgBox("Trigger it");
}*/
function onEdit(event){
var doc = SpreadsheetApp.getActiveSheet();
var r = event.source.getActiveRange();
var currentCol = r.getColumn();
// Browser.msgBox("currentCol:- "+currentCol);
if(currentCol!= 10 && currentCol!= 11 && currentCol!= 12)
{
var currentRow = r.getRow();
// Browser.msgBox("currentRow:- "+currentRow);
var v = parseInt(currentRow);
var dataRange = doc.getRange(v, 10, 1,3);
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var tom = row[0].toLowerCase();
// Browser.msgBox(tom);
var steven = row[1].toLowerCase();
var lucy = row[2].toLowerCase();
if(tom=="added" )
doc.getRange(v, 10, 1, 1).setValue("ADD");
if(steven=="added" )
doc.getRange(v, 11, 1, 1).setValue("ADD");
if(lucy=="added" )
doc.getRange(v, 12, 1, 1).setValue("ADD");
}
}
// calscript();
//Browser.msgBox("Done:-");
}
function calscript() {
//Browser.msgBox("start calscript:-");
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, sheet.getMaxRows(),35);
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var title = row[32].toString();
// Browser.msgBox(title);// First column
var desc = row[34]; // Second column
var tstart = row[2];
// Browser.msgBox(tstart);// First column
var tstop = row[3];
// Browser.msgBox(tstop);// First column
var loc = row[31];
var tom=row[9].toLowerCase();
var steven=row[10].toLowerCase();
var lucy=row[11].toLowerCase();
var day=row[4].toLowerCase();
if(tom=="add")
{
AddtoTom(day,title, tstart, tstop, {description:desc,location:loc});
dataRange.getCell(parseInt(i)+1,10).setValue('Added');
}
if(steven=="add")
{
AddtoSteven(day,title, tstart, tstop, {description:desc,location:loc});
dataRange.getCell(parseInt(i)+1,11).setValue('Added');
}
if(lucy=="add")
{
AddtoLucy(day,title, tstart, tstop, {description:desc,location:loc});
dataRange.getCell(parseInt(i)+1,12).setValue('Added');
}
//cal.createEvent(title, new Date("March 3, 2010 08:00:00"), new Date("March 3, 2010 09:00:00"), {description:desc,location:loc});
// cal.createEvent(title, tstart, tstop, {description:desc,location:loc});
}
}
function AddtoTom(day,title,startdt,enddt,desc)
{
var cal = CalendarApp.openByName("Tom");
if(day=="all day")
**cal.createAllDayEvent(title, **startdt,** desc)**
else
cal.createEvent(title, startdt, enddt, desc);
}
function AddtoSteven(day,title,startdt,enddt,desc)
{
var cal = CalendarApp.openByName("Steven");
if(day=="all day")
**cal.createAllDayEvent(title, **startdt**, desc)**
else
cal.createEvent(title, startdt, enddt, desc);
}
function AddtoLucy(day,title,startdt,enddt,desc)
{
var cal = CalendarApp.openByName("Lucy");
if(day=="all day")
**cal.createAllDayEvent(title, **startdt**, desc)**
else
cal.createEvent(title, startdt, enddt, desc);
}
function onOpen() {
// Browser.msgBox('start');// First column
var menuEntries = [];
menuEntries.push({name: "Add To Calendar", functionName: "calscript"});
ss.addMenu("Main Menu", menuEntries);
// Browser.msgBox('end');// First column
}
function onInstall() {
onOpen();
}
function onFormSubmit()
{
}
function configure() {
// Browser.msgBox('trigger');// First column
ScriptApp.newTrigger("calscript").timeBased().everyMinutes(1).create();
//Browser.msgBox('trigger ends');// First column
}