2015-07-29 2 views
1

Этот (я надеюсь) основной вопрос. Я не вижу события календаря в fullcalendar, и я считаю, что проблема заключается в формате даты, который я пытаюсь использовать для событий начала/конца. Я пытаюсь настроить базовый календарь, загружая события JSON. Вот мой выход JSON (обрезается до одного события, чтобы не занимать много места):fullcalendar - формат даты для событий конца/начала

[{"id":"89","title":"A Title","start":"June 2nd 2015","end":"August 14th 2015"}] 

Мой Javascript выглядит следующим образом:

$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
     editable: false, 
     events: "data.php" 
    }); 
}); 

Опять же, очень простой. Я точно знаю, что проблема с событиями, которые не появляются, связана с форматом даты, который я использую, но я не уверен, как сообщить fullCalendar использовать формат MMMM Do YYYY для событий start/end с помощью момента. Js. Кто-нибудь знает, как это делается?

EDIT:

Попытался добавить что-то вдоль этих линий ... но до сих пор не повезло:

var start = moment(event.start).format("MMMM Do YYYY"); 
var end = moment(event.end).format("MMMM Do YYYY"); 
+0

Вы можете преобразовать даты в формате JSON в формат, который fullCalendar понимает. –

+0

Я мог бы ... и я сделаю это в крайнем случае. Но я предпочел бы использовать формат «MMMM Do YYYY», если это возможно. Если это невозможно, я поеду по этому маршруту. – Wes

ответ

1

Я не уверен, если это будет считаться ответом или более обходной путь, но я выложу его в качестве ответа в любом случае.

В итоге я просто преобразовал формат даты в выход json, как предложил Бруно в приведенном выше комментарии. Мне хотелось бы разобраться с javascripting, но после нескольких часов попыток я никогда не смог отобразить события в календаре.

Я пойду вперед и пост мой источник PHP для тех, кому интересно (только с указанием даты начала):

$start = $row['startdate']; 
    $start_obj = new \DateTime($start); 
    $events['start'] = $start_obj->format('Y-m-d'); 
0

я совершил нечто подобное, определив функцию для событий, перебирая создания moment.js данных объекты для поля start, используя мой желаемый формат. У docs есть основы для того, как это сделать.

EDIT: Я скопировал пример из docs и изменил время начала, используя moment.js.

$('#calendar').fullCalendar({ 
events: function(start, end, timezone, callback) { 
    $.ajax({ 
     url: 'myxmlfeed.php', 
     dataType: 'xml', 
     data: { 
      // our hypothetical feed requires UNIX timestamps 
      start: start.unix(), 
      end: end.unix() 
     }, 
     success: function(doc) { 
      var events = []; 
      $(doc).find('event').each(function() { 
       events.push({ 
        title: $(this).attr('title'), 
        start: moment($(this).attr('start'), 'MMMM Do YYYY') // will be parsed 
        }); 
       }); 
       callback(events); 
      } 
     }); 
    } 
}); 
+0

Поэтому я хотел бы создать событие, как это: 'события: функции (начало, конец) {' 'данные: {' 'старт: (MMMM Do YYYY),' 'конец: (MMMM Do YYYY)' '}' Правильно ли это? (извините, не уверен, как сделать код в комментариях) – Wes

+0

Отредактировал ответ на примере. Обратите внимание, что этот пример не является решением для вас, так как вызов ajax ожидает результата XML, а не JSON, но вам будет легко изменить его. – Ray

+0

Все еще не получается - пробовал различные методы с моментом. Но я буду продолжать играть с ним. – Wes