2010-10-08 7 views
1

Si je précise mes événements par hardcoding dans un tableau des événements javascript, l'heure est affichée avant le titre sur le calendrier:Calendrier complet: affichage de l'heure de départ

Le code Javascript de:

événements: [ { titre: "mon titre", début: new date (2010,9,8,11,12) } dans un affichage ]

résultats de "11h12 mon titre" comme un événement sur mon calendrier. Mais quand j'utilise une fonction pour créer les événements (réception des données via ajax), l'heure n'est pas affichée sur le calendrier. Voici le code pour la fonction de succès ajax (dans cet exemple, j'ai codé en dur la date de début, mais peu importe comment je fixe la date de début, elle n'est jamais affichée, seul le titre est affiché):

 success: function(doc) { 

      var events = []; 

      $(doc).find('event').each(function() { 
       events.push({ 
        title: $(this).find('title').text(), 
        start: new Date(2010,9,8,11,12), 
        url: $(this).find('url').text(), 
        className: $(this).find('className').text(), 
        allDay: $(this).find('allDay').text() 
       }); 
      }); 

      callback(events); 
     } 

Il semble que la date de début est traitée différemment par la fonction d'événements. J'ai essayé d'utiliser "new Date()" ou en spécifiant la date comme une chaîne (7 octobre 2010, 14:10) ou comme un horodatage unix. Il semble reconnaître la date parce que l'événement apparaît le jour approprié du calendrier, mais l'heure ne s'affiche pas lorsque j'utilise la fonction ajax.

Des idées?

Merci

Répondre

0

Cela pourrait être l'option allDay. Peut-être essayer de passer allDay: false, et voir ce qui se passe. Pas de citation autour de faux, bien sûr.

0

Il semble que si je passe la chaîne de départ au format «8 octobre 2010, 13:13» et que je la passe ensuite à l'objet de l'événement sans le modifier, l'heure est affichée. Je ne suis pas totalement fait mais il semble que cela fonctionne.

1

Peut-être avec formatDate:

success: function(doc) { 

      var events = []; 

      $(doc).find('event').each(function() { 
       events.push({ 
        title: $(this).find('title').text(), 
        start: $.fullCalendar.formatDate(new Date(2010,9,8,11,12), 'yyyy-MM-dd HH:mm:ss'), 
        url: $(this).find('url').text(), 
        className: $(this).find('className').text(), 
        allDay: $(this).find('allDay').text() 
       }); 
      }); 

      callback(events); 
     } 
1

Selon l'API, si allDay est réglé sur vrai, alors tout le temps que vous avez donné sera considéré comme une journée entière, il ne montrera jamais le temps que vous voulez.

Définissez allDay sur false si vous voulez que cet événement dure une période spécifique.

Questions connexes