我对完整日历中的日期有一些问题。
$("#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}
我希望完整的日历以UTC显示值,如GMT+0000。有办法做到这一点吗?
我尝试使用ignoreTimezone设置,但没有帮助。也许我没有正确使用它。
实际上并不是FullCalendar在产生您所看到的偏移量。它只是JavaScript的Date
对象。
Date
的行为是,它在内部以UTC为单位跟踪时间,但无论何时显示,都会使用本地计算机的时区显示该值。没有任何直接的方法可以禁用这种行为——这就是JavaScript日期的工作方式。您可以查看此网站以了解有关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,而AFAIK并不存在。