我正在尝试根据此示例实施座位预订应用:http://collaborative-tools-project.blogspot.ch/search?q=simple+booking
我让它工作,但仍有时区问题。下面的代码采用给定日期,并定义事件的开始和结束日期/时间的小时和分钟。 它有效,但是每个预订都在日历中太晚了一个小时,我不明白为什么。 我住在GMT + 1时区(瑞士)。
var start_date_obj = new Date (date);
start_date_obj.setHours( start_hours,start_minutes,0,0 );
var end_date_obj = new Date( date );
end_date_obj.setHours( end_hours, end_minutes,0,0 );
var title = "Buchung " + tutor ;
var calendar = CalendarApp.getCalendarById('ondemandmanagement.net_1rc3sl8cfbfr1pp3kekvtb53s4@group.calendar.google.com');
Logger.log("Start: " + start_date_obj + " End: " + end_date_obj );
var event = calendar.createEvent(title +": "+email, start_date_obj, end_date_obj, {location: "Galmiz"});
API参考说:
createEvent(title,startTime,endTime)
创建一个新事件。如果未指定时区,则时间值为 在剧本的时区范围内解释,可能是 不同于日历的时区。
当我检查日志时,我看到start_date_obj和end_date_obj处于正确的时区(GMT + 1)。 但是,createEvent()调用似乎使用PDT时区,日历显示GMT + 2或GMT + 1 DST(一小时太晚)的事件。
10:00 GMT + 1 预订活动的代码片段日志文件摘录:
Logger.log([开始时间:2018年6月9日星期六 10:00:00 GMT + 0100(BST)结束:2018年6月9日星期六 10:20:00 GMT + 0100( BST),[]])[0秒] [17-11-18 20:01:58:235 CET] Calendar.createEvent([Buchung Scheibe 3:heinz.ruffieux@ondemandmanagement.net,星期六09月6日 02:00:00 PDT 2018,星期六09年6月 02:20:00 PDT 2018,{location = Galmiz}])[0.333秒]
而02:00 PDT实际上转换为格林威治标准时间11点11分(太晚一小时)。但我不明白它的来源。 BST是问题吗?它来自哪里?
任何人都可以帮助我吗?
非常感谢
亨氏