FullCalendarを利用した車の予約機能を作成しています。これは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
しかし、これは私がカレンダーに持っているものです
ドキュメントはこれについて何かを言っています(私は思う):
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!
しかし、この情報をどうするかはよくわかりません...
方向のキーワードはexclusive
であるため、指定した時間は日付範囲に含まれません。
したがって、"2014-12-21T00:00:00.000Z"
は、イベントが12-21の最初の時点で存在しなくなることを意味します。イベントを12〜21日に処理するには、終了時間を"2014-12-22T00:00:00.000"
(12〜22の最初の可能な時間)に設定します。
私は同じ問題を抱えていましたが、ようやくわかりました。
あなたが終日真を使用した場合、それは時間通りに動作しますドキュメントに従って、私は終日TRUEを使用していました。
最初に終日をFALSEに変更してから、
終了日に$ endDate。 "T23:59:00";を追加しました
これは私のために働いた。
NextDayThreshold:'00:00 'を設定する必要があり、最終日が表示されます!
私は同じ問題を抱えていましたが、時間を試してみましたが、それが解決策でした:)
2014-12-21T00:00:00 => 2014-12-21T23:59:00これで問題が解決します。
最良の部分は、次のように終了日に20:00:00を追加することです。
var ed = $("endDate").val();
newVar = ed+" 20:00:00";
必要なのはそれだけです。
イベントに開始時間と終了時間を設定することにより、問題を「修正」しました。
まだ有用かどうかはわかりませんが、この方法を使用して、終了日に1日を追加することができます:
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P0Y0M1DT0H0M0S'));
これにより、終了日が1日増加します。
私も同じことに直面し、"T23:59:00"
を終了日に追加することで解決しました。つまり、"end"
=> $end_date."T23:59:00"
、
2014年12月21日の0時間、分、秒などに終了日を設定している場合、その日のイベントを表示する時間はありません。
イベントは終日のイベントとして設定されているため、終了日を翌日の0時間に進める必要がある場合がありますが、イベントが落ちるように任意の量(1時間など)だけ時間を進めることもできます目的の終了日の内側で、レンダリングする必要がある終日イベントです。
イベントオブジェクトに、設定可能な期間パラメータが含まれていればいいのですが、少なくともドキュメントにはありません。
In Angular終了日時が23:59:59を超える場合、終了日時を現在の時刻に変更 `
this.calendarOptions = {
editable: false,
eventLimit: false,
validRange: {
start: '',
end: new Date(new Date().getUTCFullYear(), new Date().getUTCMonth())
},
header: {
left: '',
center: 'title',
right: 'prev,next'
},
eventSources: [
// your event source
{
events: (start, end, timezone, callback) => {
var data = [];
data.Push(new Date("2019-04-11T00:19:02"))
data.Push(new Date("2019-04-12T00:19:02"))
data.Push(new Date("2019-04-13T00:19:02"))
var eventData = [];
var calendarEvents: CalendarEvents = new CalendarEvents();
calendarEvents.start = data[0];
//Change end time, because of when end date time is greator than 23:59:59 then end date not marked
var m = moment(data[data.length - 1], 'ddd MMM D YYYY HH:mm:ss ZZ');
m.set({ h: new Date().getHours() });
calendarEvents.end = m.toDate();
calendarEvents.allDay = false;
eventData.Push(calendarEvents);
callback(eventData);
},
color: '#f99500', // an option!
textColor: 'black', // an option!
// displayEventTime: false,
}
// any other sources...
],
timeFormat: 'HH:mm'
};
`