Подтвердить что ты не робот

Даты окончания полного календаря на один день

Я делаю полную поддержку резервирования автомобилей. Это файл coffescript.

    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

И это JSON-канал с событиями.

[{"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}]

Дата end 2014-12-21, но это то, что у меня есть в календаре enter image description here

Документация говорит об этом (я думаю):

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!

Но я не совсем уверен, что делать с этой информацией...

4b9b3361

Ответ 1

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

Итак, в вашем случае "2014-12-21T00:00:00.000Z" означало бы, что событие больше не будет существовать в самом начале 12-21. Если вы хотите, чтобы событие проходило через 12-21, вы должны установить время окончания "2014-12-22T00:00:00.000" (первое возможное время в 12-22).

Ответ 2

У меня была та же проблема, и я наконец понял.

Я использовал полный день TRUE, согласно документации, если вы используете полный день true, он будет вести себя вовремя.

Итак, сначала я изменил полный день на FALSE, затем

в конце дня я добавил $endDate. "T23: 59: 00";

Это сработало для меня.

Ответ 3

У меня была та же проблема, но я экспериментировал со временем, и это была резолюция:)

2014-12-21T00: 00: 00 = > 2014-12-21T23: 59: 00 это решит вашу проблему.

Ответ 4

Лучшая часть - добавить 20:00:00 до даты окончания:

var ed = $("endDate").val();
newVar = ed+" 20:00:00";

Это все, что вам нужно.

Ответ 5

Если вы устанавливаете дату окончания в течение 0 часов, мин, сек и т.д. 12-21-2014, в этот день нет времени для показа события.

Вам может потребоваться указать дату окончания до 0 часов следующего дня, так как у вас есть настройка события как событие в течение всего дня, однако вы также можете просто увеличить время на любую сумму (например, час), чтобы событие попадает в желаемую дату окончания, а затем представляет собой событие в течение всего дня, которое оно должно отображать.

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

Ответ 6

"Исправлена" проблема, устанавливая время начала и окончания событий.

Ответ 7

Я не знаю, будет ли он еще полезен, но вы можете использовать этот метод, добавив день в конечную дату, используя:

$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P0Y0M1DT0H0M0S'));

это увеличит вашу дату окончания на один день.

Ответ 8

Я также столкнулся с тем же и решил, добавив "T23:59:00" к конечной дате, то есть "end" => $end_date."T23:59:00",

Ответ 9

Вам нужно установить nextDayThreshold: '00: 00 ', и он покажет последний день!

Ответ 10

Измените время окончания даты с текущим временем, когда время окончания даты больше, чем 23:59:59