2013-06-29 159 views
0

我發現了這個類似的線程,但我似乎無法讓他們的解決方案適用於我的具體問題。我現在有一個日曆,可以突出顯示事件的開始日期。我需要將其更改爲突出顯示開始日期和結束日期。 注意:我沒有寫這個代碼。看起來寫這個的人似乎在這裏留下了很多垃圾。請不要判斷。如何使用Javascript在兩個日期之間選擇日期?

attachTocalendar : function(json, m, y) { 
    var arr = new Array(); 
    if (json == undefined || !json.month || !json.year) { 
     return; 
    } 
    m = json.month; 
    y = json.year; 

    if (json.events == null) { 
     return; 
    } 
    if (json.total == 0) { 
     return; 
    } 
    var edvs = {}; 
    var kds = new Array(); 
    var offset = en4.ynevent.getDateOffset(m, y); 
    var tds = $$('.ynevent-cal-day'); 
    var selected = new Array(), numberOfEvent = new Array(); 
    for (var i = 0; i < json.total; ++i) { 
     var evt = json.events[i]; 
     var s1 = evt.starttime.toTimestamp(); 
     var s0 = s1; 
     var s2 = evt.endtime.toTimestamp(); 
     var ds = new Date(s1); 
     var de = new Date(s2); 
     var id = ds.getDateCellId(); 
     index = selected.indexOf(id); 
     if (index < 0) 
     { 
      numberOfEvent[selected.length] = 1; 
      selected.push(id); 
     } 
     else 
     { 
      numberOfEvent[index] = numberOfEvent[index] + 1; 
     } 
    } 

    for (var i = 0; i < selected.length; i++) { 
     var td = $(selected[i]); 
     if (td != null) { 
      if (!(td.hasClass("otherMonth"))){ 
       td.set('title', numberOfEvent[i] + ' ' + en4.core.language.translate(numberOfEvent[i] > 1 ? 'events' : 'event')); 
       td.addClass('selected'); 
      } 
     } 
    } 
}, 
+1

該函數所屬對象需要更多信息 - 什麼是包含在'json'中,什麼是'getDateCellId()',什麼是'en4'?或者,你可以更詳細地描述你正在嘗試做什麼以及你嘗試過什麼? – Stuart

回答

0

而不是嘗試全部選中它們,我建議你反覆使用它們。所以像這樣:

function highlightDates(startDate, endDate) { 
    var curDate = startDate; 
    var element; 

    $('.selected').removeClass('selected'); // reset selection 

    while (curDate <= endDate) { 
     element = getElementForDate(curDate) 
     element.addClass('selected'); 

     curDate.setDate(curDate.getDate() + 1); // add one day 
    } 
} 

function getElementForDate(someDate) { 
    return $('#day-' + someDate.getYear() + "-" + someDate.getMonth() + "-" + someDate.getDay()); 
} 
+0

感謝您的幫助。我最終走上了類似的路線。 \t我創建了一個「newDate」,將其設置爲startDate,並添加while(newDate <= endDate),並在我突出顯示日期之後向newDate添加了一天。 – nsmanners

+0

糟糕,是的,我忘了在while循環中添加一天curDate,現在將添加。 –

相關問題