Даты окончания полного календаря на один день
Я делаю полную поддержку резервирования автомобилей.
Это файл 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!
Но я не совсем уверен, что делать с этой информацией...
Ответы
Ответ 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