Google Apps Script表单同步日历时间偏移1小时修复请求
修复Google Apps Script表单-日历同步的1小时时间偏移问题
核心修复步骤:
- 修改夏令时偏移变量:找到脚本开头定义的
DST_HOURS变量,将其值改为0。比如原代码如果是const DST_HOURS = 1;,直接改成const DST_HOURS = 0;——这个变量是导致时间自动加1小时的直接原因。 - 清理偏移相关调用:检查脚本中所有使用
DST_HOURS的代码(比如startTime.addHours(DST_HOURS)这类语句),确认修改变量后不会再产生额外偏移。如果有直接写死addHours(1)的代码,直接改成addHours(0)或者删除该行。 - 禁用时区偏移函数:确保脚本底部被注释的时区偏移函数没有被调用。如果之前有未注释的调用逻辑,直接注释或删除这些调用,避免自动计算时区偏移。
额外验证项:
- 确认Google表单和目标日历的时区设置完全一致,比如都设为你所在的本地时区(如北京时间、纽约时间等),避免跨时区自动转换导致的偏移。
- 检查创建日历事件的代码,比如
CalendarApp.createEvent()方法,确保没有手动指定错误的时区参数,直接使用表单提交的原始时间对象即可。
测试验证:
提交一条测试表单数据(比如填写2023年4月10日7:30-9:15),查看日历中生成的事件时间是否与表单填写的完全一致。如果仍有问题,排查脚本中所有处理时间的逻辑,确认没有其他隐藏的小时偏移操作。
内容的提问来源于stack exchange,提问作者Dan Gildea
相关产品推荐
相关产品推荐

