2011-04-26 3 views
5

나는 fullCalendar 구현 내에서 방금 발견 한 wierdness 비트가 있습니다.JQuery fullCalendar : 날짜/이벤트 관련 문제 - 시간이 너무 늦었습니다!

기본적으로 데이터베이스에 "28/04/2011 09:00:00"(dmy)의 날짜가 있습니다.이 날짜는 유닉스 타임 스탬프로 변환되어 1303981200.0이됩니다.

나는 http://www.onlineconversion.com/unix_time.htm으로 확인했으며 타임 스탬프가 유효합니다.

그러나이 JSON을 fullCalendar에 전달하면 1 시간 후에 이벤트가 렌더링됩니다!

json으로는 다음과 같습니다

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

감사를 당황.

답변

4

안녕하세요 amit_g, 나는 또한 PHP로 생성 된 타임 스탬프를 사용하여 이것을 만났습니다. 문제는 타임 스탬프에 '말 그대로'시간대가 포함되어 있지 않기 때문에 발생합니다. FC로 Date()를 사용하여 javascript로 변환하면 현지 시간대가 사용됩니다.

FC에 이벤트를 제공 할 때 타임 스탬프 대신 전체 ISO 8601 날짜 형식을 사용하여이 문제를 해결했습니다. 이벤트 시작은 타임 스탬프가 자정을 위해이기 때문에 (때문에 DST에 시간 -4 EST) 내 시간대에 따라 이벤트를 표시 할 때 startTimestamp는 자바 스크립트 날짜() 4 시간 뺍 만 $로 FC를 공급

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

, 따라서 FC에서 하루 종일 나의 이벤트를 보여줍니다. ISO 날짜를 사용하면 모든 이벤트가 정확한 시간에 표시됩니다. 희망이 다른 사람을 도와주세요!

+0

감사합니다. @ user725755,이 작업은 정상적으로 처리되었습니다. 잘 했어. 감사. – Oxonhammer

+1

C#의 경우 DateTime.Now.ToString ("o")과 같은 것을 사용하십시오. – Mike

1

가능성이 시간되는 불일치는 일광 절약 시간 때문이다. Fullcalendar 코드는 현재 클라이언트의 시간으로 설정되어있을 것입니다. 시간대와 일광 절약 시간 차이를 조정해야 할 수도 있습니다. 시간대 GotchasFullCalendar documentation을 참조하십시오. 지나치게 도움이되지는 않지만 올바른 방향으로 안내 할 수 있습니다.

+0

감사합니다. 그것은 내가 필요한 정확한 방향으로 나를 가리켰다. –

+0

Asp.net Webforms를 통해 이벤트 세부 정보를 제공하고 DateTime.ToLocalDate()를 변환하여 트릭을 만들려고했습니다. –

관련 문제