2014-03-25 60 views
7

我使用FullCalendar Beta2,並將AllDay標誌設置爲True。 該日曆仍將結束日期視爲獨佔! 如何使結束日期包含在內?FullCalendar結束日期不包含

非常感謝。

+0

阿迪=「真」 =阿迪=真 –

+0

我用真(如布爾值,而不是字符串)和它的作品,因爲它不顯示時間的!請假的身體,但仍然結束日期是獨家! – ZooZ

+2

爲了讓它變回包容性,只需要在結尾添加一整天'''end = new Date(+ end + 60 * 60 * 24 * 1000)'''誰把這個問題拖了下來呢? –

回答

8

@ZooZ -​​ 按照Beta 2的升級文件,終止日期現獨家:

所有結束日期現在是互斥的。例如,如果全天事件在星期四結束 ,則結束日期將是星期五的00:00:00。 1.x 版本在這方面有一些奇怪的規則。現在應該是 要簡單得多,現在獨家結束日期在整個API中一致地使用 。另外,這種行爲更符合 其他API和格式,例如iCalendar。

參考:http://arshaw.com/fullcalendar/wiki/Upgrading-to-2/

我想補充一個到您的最終日期計算來解決這個:)

+0

請給我們一個填充滿量程的示例,使結束日期包含在內?獲得調整大小和拖放玩好月視圖的獎金? – JerryA

+0

@JerryA你只需要在事件的「結尾」添加1秒。 我從服務器發送我的事件(在Ruby中)。以下是我如何製作結束日期的快照,其中end_at是來自Postgres的日期時間: 'e = {}' 'e [:start] = self.start_at.to_time.iso8601' 'e [:end ] =(self.end_at + 1).to_time.iso8601' ''' – TomDavies

0

您可以掛接到eventAfterAllRender和更新事件的副本,並迫使日曆刷新。

在我的示例中,修改僅適用於標記爲allDay事件(allDay:true)的事件。我只修改事件數據的副本/克隆,所以它只會改變顯示內容,而不會改變實際的數據(我認爲 - 我需要更好地測試它)()。我添加了克隆功能,但如果你喜歡,你可以使用其他的東西。我添加了forceRendererToDisplay標誌使它只運行一次。

這裏是一個小提琴:https://jsfiddle.net/a3q9c5tr/15/

function clone(obj) { 
    if (null == obj || "object" != typeof obj) return obj; 
    var copy = obj.constructor(); 
    for (var attr in obj) { 
     if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr]; 
    } 
    return copy; 
} 

$('#calendar1').fullCalendar({ 
forceRerenderToDisplay: true, 
eventAfterAllRender: function(){ 
    var startdatestr = this.options.events[0].start; 
    var enddatestr = this.options.events[0].end; 
    if(this.options.forceRerenderToDisplay == true){ 
     var endDisplayDate = new Date(enddatestr); 
     endDisplayDate.setDate(endDisplayDate.getDate() + 1); 
     this.options.forceRerenderToDisplay = false; 
     var evs = clone(this.options.events); 
     for(var i in evs){ 
     if(evs[i].allDay){ 
      evs[0].end = new Date(endDisplayDate).toISOString().slice(0,10); 
     } 
     } 
     this.calendar.removeEvents(); 
     this.calendar.addEventSource(evs); 
     this.calendar.rerenderEvents(); 
    } 
}, 
events:[ 
    {start:'2016-04-03',end:'2016-04-05',title:'my event', allDay:true} 
], 
header: { 
    left: 'prev,next,today', 
    center: 'title', 
    right: 'month,agendaWeek,agendaDay', 
    allDay:true 
    } 
}); 
相關問題