我正在使用 Fullcalendar 1.5.3 和 JQuery 1.7.2 - 在我的本地时区,数据显示完美,但在其他时区,由于与时区本地时间的时差,我假设它间歇性地工作。
我从一个文件中获取一个 JSON 提要,日期作为 Ymd 存储在 MySQL 中。
我已经阅读了 ignoreTimezone 并在 fullcalendar.js 和页面上对日历对象的调用中将其设置为 false 和 true,但它没有任何区别。ignoreTimezone 的文档提到了在 ISO8601 日期上工作,而我的日期不是。
在下面的具体示例中,美国西海岸的一个客户看到圣诞节显示为 12 月 24 日 - 我已经从客户那里得到确认,他们使用了多个浏览器和机器,而且我遇到了多个客户的问题,所以听起来就像它没有本地化到一台客户端机器等一样。
这是代码:
<script>
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
ignoreTimezone: false,
titleFormat: {
month: 'MMMM yyyy',
week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
day: 'dddd, MMM d, yyyy'
},
columnFormat: {
month: 'ddd',
week: 'ddd d/M',
day: 'dddd d/M'
},
timeFormat: { // for event elements
'': 'H(:mm)t' // default
},
eventSources: [
'public_holidays_feed.php'
]
})
});
</script>
我的 JSON 提要的片段显示:
[
{"id":"1","title":"New Year's Day (USA)","start":"2012-01-02","end":"2012-01-02","backgroundColor":"#000000","allDay":true},
{"id":"2","title":"New Year's Day (UK)","start":"2012-01-02","end":"2012-01-02","backgroundColor":"#000000","allDay":true},
{"id":"3","title":"Birthday of Martin Luther King, Jr. (USA)","start":"2012-01-16","end":"2012-01-16","backgroundColor":"#000000","allDay":true},
{"id":"4","title":"Washington's Birthday (USA)","start":"2012-02-20","end":"2012-02-20","backgroundColor":"#000000","allDay":true},
{"id":"5","title":"Good Friday (UK)","start":"2012-04-06","end":"2012-04-06","backgroundColor":"#000000","allDay":true}
]
我怎样才能让上面忽略本地时区而只使用服务器时区,所以如果 MySQL 中的日期显示 2012-12-25 那么这就是每个人都应该看到的,无论他们在哪里?
谢谢