2015-09-24 3 views
2

Я использую мой список событий angular-bootstrap-calendar и имеют следующий формат:углерода, Javascript Дата Объекты и временная зона

{"events":[{"eventid":"7","title":"Events","type":"info","startsAt":"2015-09-24T10:00:00+00:00","endsAt":"2015-09-24T11:00:00+00:00","draggable":"true","resizable":"true"}]} 

Но когда мои события отображаются в календаре, он показывает 6 утра вместо 10 часов.

Я предполагаю, что это должно сделать преобразование углерода в мои даты?

$startAt = Carbon::parse($appointments['appointment_start'])->toATOMString(); 

или преобразование моих дат в Javascript Дата объектов и часовых поясов

$http.get('../api/events').success(function(events) { 

// Convert dates to Javascript Date Object 
for (var i = 0; i < events.events.length; i++) { 
    events.events[i].startsAt = new Date(events.events[i].startsAt); 
    events.events[i].endsAt = new Date(events.events[i].endsAt); 
} 

Не знаю, как я должен справиться с этим? Думаю, даты моего мероприятия (т.е. 2015-09-24T10: 00: 00 + 00: 00) должны иметь другой формат?

ответ

1

Найдено решение.

нужно добавить часовой пояс там:

$startAt = Carbon::parse($appointments['appointment_start'], \Auth::user()->timezone)->toATOMString(); 

В вашем случае timzone может быть установлен с помощью переменной ($ часовой пояс)

$startAt = Carbon::parse($appointments['appointment_start'], $timezone)->toATOMString(); 

или зашиты ('Europe/London'):

$startAt = Carbon::parse($appointments['appointment_start'], 'Europe/London')->toATOMString(); 
Смежные вопросы