我正在尝试在FullCalendar中显示America / 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
}]
});
}
答案 0 :(得分:0)
在初始化中,设置以下选项:
{ 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" }