javascript - FullCalendar 时区不工作

标签 javascript fullcalendar momentjs

我试图在此示例中设置时区,当选择日历上的时间时,尽管将 timezone 选项设置为“America/New_York”,但它显然仍然是 UTC:

$(document).ready(() => {
    const fc = $('#c');
    const tz = 'America/New_York';

    const data = {
        meetings: [
            {
                title: 'Test data',
                start: 1513976400000,
                end: 1513980000000
            }
        ]
    };
    const myEvents = [];
    for (let d = 0; d < data.meetings.length; d += 1) {
        myEvents.push({
            title: 'Booked',
            start: (moment(data.meetings[d].start).tz(tz)),
            end: (moment(data.meetings[d].end).tz(tz)),
        });
    fc.fullCalendar({
        events: myEvents,
        timezone: tz,
        header: {
            left: 'title',
            center: 'month,agendaWeek',
            right: 'today prev,next',
        },
        selectable: true,
        selectHelper: true,
        select(start, end) {
            alert(`Book a meeting for ${start.format('h:mma on dddd M/D')}?`);
        },
        selectOverlap: false,
        editable: false,
        eventOverlap: false,
    });

});

谁能确认这是错误还是用户错误?

最佳答案

将时刻默认时区更改为所需时区(以下是工作 例如更改时区并在日历上观察事件)。

$(function () {
    var timeZone = 'America/New_York';
    var now = moment().add(moment.tz(timeZone).utcOffset(), "m");
    moment.tz.setDefault(timeZone);
    $('#calendar').fullCalendar({
     header: {
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
             events: 'https://fullcalendar.io/demo-events.json',
             defaultView: 'agendaWeek',
             timeFormat: 'HH:mm',
      
            editable: true,
    });
});
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://jakubroztocil.github.io/rrule/lib/rrule.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>
<link href="https://fullcalendar.io/js/fullcalendar-3.0.1/fullcalendar.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.0.1/fullcalendar.js"></script>

<div id="calendar"></div>

关于javascript - FullCalendar 时区不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935509/

相关文章:

jquery-plugins - 将 Small Calendar (datepicker) 和 Timeline 与 fullCalendar 集成

javascript - javascript中两年之间的小时差(闰年)

node.js - Sequelize.js 中的 UTC 日期

javascript - Bootstrap Accordion ,在标题面板中显示/隐藏文本

javascript - 默认接收器上的 Chromecast WebVTT 字幕

javascript - 如何检查 fullCalendar 中某一天已存在的值

javascript - 如何将数据库中的资源和事件显示到fullcalendar?

javascript - 使用Moment js的倒数计时器

javascript - 使用express.js混淆动态url

javascript - 如何使用用户输入创建倒计时器