gpt4 book ai didi

javascript - FullCalendar 日期与 Office365 的偏移量

转载 作者:太空宇宙 更新时间:2023-11-04 15:37:47 26 4
gpt4 key购买 nike

我正在将 Office365 中的事件导入 FullCalendar 以在网站上显示,但显示的时间与 Office365 上的事件设置时间有 1 小时偏移(即设置为 14:00:00 的事件显示为 13: 00:00),我陷入困境,无法弄清楚为什么会发生这种情况。

为日历创建事件的函数:

    function getTentativeEvents(){

client

.api("/me/calendars/"+calID1+"/calendarview/?$top=3000&$filter=ShowAs eq 'Tentative'&startDateTime="+calStartDate+"&endDateTime="+calEndDate)

.select("Subject,Start,Id,End,Categories")

.get((err, res) => {

if (err) {

console.log(err);

return;

}

console.log(res);

var catNameFound = "";

var categoryTitleTotal = timeSlotsCategoryTitleArray.length;

var arrayLength = res['value'].length;

var counter = arrayLength -1;

for (var i = 0; i < arrayLength; i++) {

var eveColour = defaultTimeSlotBackgroundColour;

var eveTxtColour = defaultTimeSlotTextColour;

var categoriesLength = res['value'][i]['categories'].length;

if(categoriesLength >= 1){

for (var i2 = 0; i2 < categoriesLength; i2++) {

var catNameFound = res['value'][i]['categories'][i2];

catNameFound = catNameFound.toLowerCase();

for (var i3 = 0; i3 < categoryTitleTotal; i3++) {

var timeSlotToCheck = timeSlotsCategoryTitleArray[i3];

timeSlotToCheck = timeSlotToCheck.toLowerCase();

//console.log(catNameFound);

if(timeSlotToCheck == catNameFound){

eveColour = timeSlotsBackgroundColourArray[i3];

eveTxtColour = timeSlotsTextColourArray[i3];

}

}

}

}

eventSubject = res['value'][i]['subject'];

eventID = res['value'][i]['id'];

startDate = res['value'][i]['start']['dateTime'];

endDate = res['value'][i]['end']['dateTime'];

startDate = startDate.replace(".0000000", "");

endDate = endDate.replace(".0000000", "");

addToEventList(eventSubject,startDate,endDate,eventID,eveColour,eveTxtColour);

}

//

$('#calendar1').fullCalendar('gotoDate', '<?php echo $theDateAfter; ?>');

$("#calendar1").fullCalendar('addEventSource', timeSlotsArray);

$('#calendarLoader').hide();

$('#calendar1').show();

});

以及日历的参数:

header: {

left: 'prev,next today',

center: 'title',

right: ''

},

defaultView: 'agendaDay',

defaultDate: '<?php echo $theDateAfter; ?>',

eventColor: defaultTimeSlotBackgroundColour,

minTime: "10:00:00",

timezone: "Europe/London",

ignoreTimezone: false,

maxTime: "20:00:00",

editable: false

我检查了 Office365 上的设置,它已正确设置为 UTC +0(伦敦)。

我错过了什么?

最佳答案

发生这种情况是因为时间以 UTC 格式返回。您需要将它们转换为您本地时间。有一个非常好的库叫moment.js 。您可以使用该库使用以下代码:

var localTime  = moment.utc(startDate).toDate();
localTime = moment(localTime).format('YYYY-MM-DD HH:mm:ss');

关于javascript - FullCalendar 日期与 Office365 的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44160975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com