javascript - FullCalendar GMT +0200 日期

标签 javascript jquery date fullcalendar

我在处理全日历日期时遇到一些问题。

$("#calendar").fullCalendar(
    //...
    eventDrop:
        function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view)
        {
            console.log(event.start); // start is a date
        }
);

拖放后,我可以在控制台中看到:

Date {Wed Jul 03 2013 16:50:00 GMT+0200}

我希望 fullcalendar 显示 UTC 格式的值,如 GMT+0000。有办法做到这一点吗?

我尝试使用 ignoreTimezone设置,但没有帮助。也许我没有正确使用它。

最佳答案

实际上并不是 FullCalendar 产生您所看到的偏移量。它只是 JavaScript 的 Date 对象。

Date 的行为是它在内部跟踪 UTC 时间,但无论何时显示它,该值都会使用本地计算机的时区来显示。没有任何直接的方法可以禁用此行为 - 这就是 JavaScript 日期的工作原理。您可以查看this site有关 JavaScript 日期的更多信息。

您可能需要考虑显式输出 UTC 时间。例如:

console.log(event.start.toUTCString());

如果您尝试将日历上的项目视为已采用 UTC,则 FullCalendar 不支持这种行为。您可以尝试使用如下内容来“伪造”:

var dt = event.start;
var adjusted = new Date(dt.getTime() - (dt.getTimezoneOffset() * 60000));
console.log(adjusted.toUTCString());

但是您可能会在夏令时在用户本地时区开始或结束的过渡点周围发现有趣或奇怪的行为。避免这种情况的唯一方法是 FullCalendar 允许您将整个日历的时区设置为 UTC,据我所知,UTC 不存在。

关于javascript - FullCalendar GMT +0200 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17618807/

相关文章:

java - 将挂钟时间从一个时区转换为另一时区

javascript - 如何在此 jquery 3d slider 中启用播放暂停功能

javascript - 如何在模糊事件之后获取焦点事件?

javascript - 如何使用 jquery-animate 或 Javascript 删除 css

swift - 如何在 Swift 中制作日期格式化程序以仅显示日期的年份部分?

java - 如何将不明确的字符串解析为日期?

javascript - 在 jquery 中使用 .parent()

javascript - JS 中 .push 处的代码损坏。

javascript - 堆叠通知栏

javascript - 取消一个 jquery submit() 方法