Je suis en train de créer une fonctionnalité de réservation de voiture soutenue par un calendrier complet.
updateEvent = (event, delta, revertFunc) ->
$.ajax
type: "PUT"
dataType: "json"
success: (data) ->
alert "Success"
error: (data) ->
revertFunc()
errors = data.responseJSON.reservations[0][1]
for message of errors
alert errors[message]
url: event.updateUrl
data:
reservation:
reservation_start: event.start.format('DD-MM-YYYY')
reservation_end: event.end.format('DD-MM-YYYY')
transport_id: event.transport_id
user_id: event.user_id
$(document).ready ->
$(".calendar").fullCalendar
events: gon.path
eventDrop: updateEvent
eventResize: updateEvent
Et ceci est le flux JSON avec les événements.
[{"start":"2014-12-17T00:00:00.000Z","end":"2014-12-21T00:00:00.000Z","title":"Cassio Godinho","url":"/reservas/44/edit","allDay":true,"editable":true,"updateUrl":"/reservation/44","transport_id":1,"user_id":1}]
La date end
est 2014-12-21
mais c'est ce que j'ai sur le calendrier
La documentation dit quelque chose à ce sujet (je pense):
endParam
It is the moment immediately after the event has ended. For example, if the last full day of an event is Thursday, the exclusive end of the event will be 00:00:00 on Friday!
Mais je ne sais pas trop quoi faire de cette information ...
Je pense que le mot clé dans les instructions est exclusive
;.
Donc, dans votre cas, "2014-12-21T00:00:00.000Z"
signifierait que l'événement n'existerait plus au tout début de 12-21. Si vous voulez que l'événement se déroule entre 12 et 21, vous voulez définir l'heure de fin à "2014-12-22T00:00:00.000"
(première fois possible dans 12 à 22).
J'ai eu le même problème et j'ai finalement compris.
J'utilisais la journée complète VRAI, conformément à la documentation. Si vous utilisiez la journée complète, cela se comporterait à temps.
donc d'abord, j'ai changé journée complète à FALSE , puis
dans mon jour de fin j'ai ajouté $ endDate. "T23: 59: 00";
Cela a fonctionné pour moi.
J'ai eu le même problème, mais j'ai expérimenté avec le temps et c'était la résolution :)
2014-12-21T00: 00: 00 => 2014-12-21T23: 59: 00 Cela résoudra votre problème.
La meilleure partie est ajouter 20:00:00 à la date de fin comme suit:
var ed = $("endDate").val();
newVar = ed+" 20:00:00";
C'est tout ce dont vous avez besoin.
"Corrigé" le problème en fixant les heures de début et de fin aux événements.
Je ne sais pas si c'est toujours utile, mais vous pouvez utiliser cette méthode, ajoutez un jour à votre date de fin en utilisant:
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P0Y0M1DT0H0M0S'));
cela incrémentera votre date de fin d'un jour.
Je faisais également face au même problème et le résolvais en ajoutant "T23:59:00"
à la date de fin i.e "end"
=> $end_date."T23:59:00"
,
Si vous définissez votre date de fin sur 0 heure, minute, seconde, etc. du 21/12/2014, il n'y a pas de temps dans cette journée pour un événement à afficher.
Il se peut que vous deviez avancer votre date de fin à 0 heure le jour suivant, car la configuration de l'événement est définie comme un événement d'une journée. Toutefois, vous pouvez également vous contenter d'avancer l'heure de n'importe quel montant (telle qu'une heure) afin que l'événement tombe à l’intérieur de la date de fin souhaitée, puis comme événement de la journée.
Ce serait bien si leur objet événement incluait un paramètre de durée que vous puissiez définir, du moins je n'en ai pas vu dans leur documentation.
Vous devez définir nextDayThreshold: '00: 00 'et le dernier jour s'affichera!