2014-03-05 47 views
0

我正試圖找到使用Javascript比較日期/時間的最佳方法,以防止在SharePoint日曆上進行重複預訂。所以我加載一個包含每個事件的項目的數組,包括他們的開始日期/時間和結束日期/時間。我想比較開始日期/時間和結束日期/時間與對象中的開始/結束日期/時間,但我不確定如何確保日期不會失效。SharePoint/Javascript:在javascript中比較日曆日期時間

,如:

//date that is created from user controls 
var startDate = new Date(startDat + 'T' + startHour + ':' + startMin + ':00'); 
var endDate = new Date(endDat+ 'T' + endHour+ ':' + endMin+ ':00'); 
for (var i = 0; i < allEvents.length; i++) { 
    var thisEvent = allevents[i]; 
    //having trouble with the compare 

    //i have tried silly ifs like 
    if (thisEvent.startDate >= startDate && thisEvent.endDate <= endDate) { 
     // this seems like I am going down the wrong path for sure 
    } 
} 

我又試圖分崩離析加載的對象爲單獨的值(INT)的日期

var thisObj = { startMonth: returnMonth(startDate), startDay: returnDay(startDate), etc 

的每個組成部分,但我不知道這是不是隻是另一個愚蠢的做法,還有另一個只是更有意義,因爲我只是在學習這一點。

+1

所以你的問題基本上是關於如何比較兩個日期?你可能想看看這個答案:http://stackoverflow.com/a/497790/1134119 – AymKdn

+0

謝謝,這是我一直在尋找。 – Justin

回答

1

我有類似的需求正在進行中,但選擇在預訂階段使用jQuery/SPServices來解決它。

該代碼仍在構建(即未完成),但該方法可能有所幫助。

我將一個事件處理程序附加到列上,然後在選擇時,將在同一個列表中預訂的所有日期提取到一個數組,然後在滾動的12個月cal上顯示該數組,如下所示。

enter image description here

我沒有檢查,以確保新的預訂不重疊,而是通過對預存的陣列會爲我提供了一個嚴格的繼續/選項快速掃描。雖然依賴於客戶端JS,所以不能在數據表或Web服務上下文中工作。