JQuery fullCalendar: проблема с датой / событием - это слишком поздно для рендеринга! - PullRequest
5 голосов
/ 26 апреля 2011

У меня есть небольшая странность, которую я только что заметил в своей реализации fullCalendar.

По сути, у меня есть дата в базе данных "28/04/2011 09:00:00" (dmy), который я конвертирую в метку времени Unix, что приводит к 1303981200.0.

Я проверил с http://www.onlineconversion.com/unix_time.htm,, и метка времени действительна.

Однако, когда я передаю этот JSONв fullCalendar оно обрабатывает событие через час!

JSON:

[{"id":"4a315750666d2f70675241544936762b632f514f51513d3d","title":"Blah blah blah","description":"","start":1303981200,"end":1303983000,"className":"A-16","allDay":false}]

Озадачено

Спасибо.

Ответы [ 3 ]

4 голосов
/ 27 апреля 2011

Привет amit_g, я тоже столкнулся с этим, используя временные метки, сгенерированные php. Эта проблема возникает из-за того, что временная метка «буквально» не содержит часовой пояс, поэтому, когда она конвертируется с помощью javascript с Date () по FC, используется ваш местный часовой пояс.

Я решил эту проблему, просто используя полный формат даты ISO 8601 вместо метки времени при подаче событий в FC.

$startTimestamp = 1303776000; //2011-04-26 at 12am
$startISO = date('c', $startTimestamp);
echo $startISO; //Outputs 2011-04-26T00:00:00+00:00

Если для FC указать только $ startTimestamp в качестве начала события, событие будет отображаться в соответствии с моим часовым поясом (-4 EST для времени из-за перехода на летнее время), поскольку временная метка для 12:00, javascript Date () вычитает 4 часа, отсюда и мое событие целый день раньше на ФК. Использование даты ISO теперь показывает все мои события в правильное время. Надеюсь, это поможет кому-то еще!

1 голос
/ 27 апреля 2011

Вероятно, эта часовая дискретность обусловлена ​​переходом на летнее время. Код Fullcalendar, вероятно, устанавливается на время текущего клиента; Возможно, вам придется скорректировать разницу между часовым поясом и переходом на летнее время. См. Часовые пояса Gotchas в Полная документация календаря . Не слишком полезно, но может указать вам правильное направление.

1 голос
/ 26 апреля 2011

Возможно, вам придется попробовать добавить часовые пояса, так как ваш сервер может иметь разное время.

http://arshaw.com/fullcalendar/docs/event_data/ignoreTimezone/

...