【问题标题】:Fullcalendar and timezones全日历和时区
【发布时间】:2012-12-13 03:30:59
【问题描述】:

我使用的是 Fullcalendar 1.5.3 和 JQuery 1.7.2 - 在我的本地时区,数据显示完美,但在其他时区,由于与时区本地时间的时差,我认为它会间歇性地工作。

我正在从文件中获取 JSON 提要,并且日期以 Y-m-d 的形式存储在 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]{ '&#8212;'[ 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,那么无论他们身在何处,每个人都应该看到这一点?

谢谢

【问题讨论】:

  • 你的服务器时区是什么?
  • 嗯,也许你想要默认的ignoreTimezone: true

标签: jquery timezone fullcalendar


【解决方案1】:

您好,我在这个问题上遇到了很多问题, 请确保您的 json 提要已满:

即:

[{"id":"190","allDay":false,"editable":true,"title":"Sam Shift","start":"2013-07-14 18:00:00","end":"2013-07-15 02:00:00"}]

我知道在文档中“allDay”默认为 false,但如果不是全天请标记它, 当然还要标记开始时间和结束时间。

如果您的活动是全天的,请务必标记它。

希望它会起作用。

** 当然可以随意放置日期和时间,与时区无关,每个客户端都会在您发送的日期字符串中看到事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2019-04-24
    • 2013-09-21
    • 1970-01-01
    • 2013-06-01
    • 2015-05-05
    • 2012-11-27
    相关资源
    最近更新 更多