FullCalendar: как игнорировать часовые пояса для событий полного дня? Годы перехода на летнее время - PullRequest
2 голосов
/ 09 ноября 2011

Мое веб-приложение отслеживает события только ПОЛНЫЙ ДЕНЬ (блокировка начинается с 00:00:00, просматривается только при просмотре по месяцам).Мой сервер генерирует даты без часового пояса в формате «22 ноября 2011 00:00:00», который я заполняю в FullCalendar, просто создав новый объект Event и заполнив дату начала:

new Date("November, 22 2011 00:00:00");

Оказывается, что логика JavaScript «new Date ()» просматривает поставляемую дату и назначает часовой пояс, поэтому даты, предшествующие 6 ноября (переход на летнее время), в конечном итоге получают GMT-4, а через несколько дней -GMT-5.

Как оказалось, некоторая моя логика, которая создает события в цикле, фактически создает их на один час позади, а затем выбрасывает день на ПРЕДЫДУЩУЮ дату, что не годится.

Моя цель - сделать так, чтобы календарь работал одинаково для любого пользователя, будь то в Канаде или Австралии.Я попытался принудительно установить даты на сервере GMT-0 в JS, но затем все отодвигается на один день назад.Мой сервер все равно сохраняет дату и удаляет время.Было бы неплохо, если бы я мог «интерпретировать» все события, предоставляемые сервером, как чистый UTC, а затем настроить сеанс браузера так, чтобы он всегда считался UTC.Тогда они оба будут говорить на одном языке и не беспокоиться о летнем времени.

Свойство календаря ignoreTimezone, похоже, не имеет значения, истинно или нет.Создание событий с помощью allDay: true не имеет никакого эффекта.

Любая помощь будет принята с благодарностью.

-Brian

...