我在处理全日历日期时遇到一些问题。
$("#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/