我试图在美国/new_york时间展示一个事件。我可以弹出一个弹出窗口以显示正确的日期/时间,但是FullCalendar无论我的设置如何,都可以修改本地时区的起点和结束。
举例来说,我有一个6月30日凌晨12点的活动,当我将本地时区调整到中央时间时,我在控制台中看到"启动"已修改为6月29日晚上11点。想法?谢谢!
function(result, event){
if (event.status) {
var rightNow = moment.tz("America/New_York");
$.each(result,function(){
this.start = moment.tz(this.Event_Time__c, "America/New_York");
this.StartDate = this.start;
this.end = moment.tz(this.Event_Time__c, "America/New_York");
this.EndDate = this.end;
this.Status = this.Event_Display_Status__c;
var day = moment.tz(this.Event_Time__c, "America/New_York").format("DD");
var isWeekend = (day == 6) || (day == 0); // 6 = Saturday, 0 = Sunday
var isPast = (rightNow > moment.tz(this.Event_Time__c, "America/New_York"));
this.isPast = isPast;
if ( isPast ) {
this.Event_Display_Status__c = 'Event Passed';
this.Status = 'Event Passed';
}
resultOut.push(this);
});
initFullCalendar(resultOut);
}
else{
alert(event.message);
}
}
function initFullCalendar(calendarEntries){
$('#calendarx').empty();
$('#calendarx').fullCalendar({
timezone: 'America/New_York',
editable: false,
weekends: true,
eventSources: [{
events: calendarEntries
}]
});
}
在您的初始化中,设置以下选项:
{ timezone: "local" }
这并不意味着计算机本地,而是指提供的日期对象的本地。
在进来的数据中,设置确保偏移量如下:
{ title: "event1", start: "2017-06-28T15:00:00-04:00" }
对于 America/new_york 它应该为-04:00或-05:00取决于日光节省和确切位置。
另一个技巧是提供一个没有任何偏移的日期(" 2017-06-28T15:00:00"(,然后将您的时区INI选项设置为:
{ timezone: "America/New_York" }
请参见更多信息:https://fullcalendar.io/docs/timezone/timezone/