我尝试使用FullCalendar(http://fullcalendar.io/),除了时区外,一切都很好用。出于某种原因,我无法像在网站上的示例中那样有时间进行更改,而且我无法看到代码中的内容与此处的示例不同:
http://fullcalendar.io/js/fullcalendar-2.2.6/demos/timezones.html
我项目中的代码要复杂得多,所以我尽量尽可能地复制示例,但它仍然无法正常工作:
<body>
<h1>Calendar:</h1>
<div class="calendar"></div>
</body>
<script>
function renderCalendar() {
$('.calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
defaultDate: '2014-11-12',
timezone: 'Europe\/London',
editable: true,
eventLimit: true, // allow "more" link when too many events
events: [{"title":"All Day Event","start":"2014-11-01"},{"title":"Long Event","start":"2014-11-07","end":"2014-11-10"},{"id":"999","title":"Repeating Event","start":"2014-11-09T16:00:00-05:00"},{"id":"999","title":"Repeating Event","start":"2014-11-16T16:00:00-05:00"},{"title":"Conference","start":"2014-11-11","end":"2014-11-13"},{"title":"Meeting","start":"2014-11-12T10:30:00","end":"2014-11-12T12:30:00"},{"title":"Lunch","start":"2014-11-12T12:00:00-05:00"},{"title":"Meeting","start":"2014-11-12T14:30:00-05:00"},{"title":"Happy Hour","start":"2014-11-12T17:30:00-05:00"},{"title":"Dinner","start":"2014-11-12T20:00:00+00:00"},{"title":"Birthday Party","start":"2014-11-13T07:00:00-05:00"},{"url":"http:\/\/google.com\/","title":"Click for Google","start":"2014-11-28"}],
loading: function(bool) {
$('#loading').toggle(bool);
},
eventRender: function(event, el) {
// render the timezone offset below the event title
if (event.start.hasZone()) {
el.find('.fc-title').after(
$('<div class="tzo"/>').text(event.start.format('Z'))
);
}
}
});
}
renderCalendar();
</script>
列出的事件是从FullCalendar.io网站上的示例中提取的确切事件。日历呈现正常,但更改时区参数不会更改事件显示的时间:
将时区设置为&#34;无&#34;显示在事件之下+00:00
将时区设置为&#34; local&#34;显示事件(EST,我的时区)下方-05:00
将时区设置为特定位置(例如,&#34; America / Chicago&#34;)显示事件下方+00:00,无论指定的位置如何
在这些情况中,没有一个是日历上显示的事件发生变化的时间;如果输入的时间是14:00:00,则无论时区设置如何,它都显示为2p。可能有一些显而易见的东西在某处丢失,但我无法看到它。任何帮助将不胜感激。谢谢。
(请注意,这是FullCalendar v2,因此ignoreTimezone参数不存在。)