2012-07-16 64 views
0

大家好,感謝您花時間閱讀本文。 Iam使用jquery callendar和iam試圖構建自定義視圖,如果我正在使用agendaweek視圖來查看當週的所有日子,我是如何徘徊,如何在將來只阻止一個星期的日曆?我的意思是,我只是希望它在未來展示一週,而不是更多。這是我的配置;jquery完整日曆將日曆向前移動一週並阻止下一個按鈕。

$('#calendar').fullCalendar({ 
      header: { 
       left: 'next today', 
       center: 'title', 
       right: 'week' 
      }, 
         defaultView: 'basicWeek', 
      editable: true, 
      events: [<?php echo $calendar_events?> 
           ] 
        }); 

    }); 

謝謝大家在周視圖1周堵塞先進

回答

1

簡單的解決方案。爲使該代碼工作,你需要getWeekNumber功能從http://www.merlyn.demon.co.uk/weekcalc.htm#WNR

/* For a given date, get the ISO week number 
* 
* Based on information at: 
* 
* http://www.merlyn.demon.co.uk/weekcalc.htm#WNR 
* 
* Algorithm is to find nearest thursday, it's year 
* is the year of the week number. Then get weeks 
* between that date and the first day of that year. 
* 
* Note that dates in one year can be weeks of previous 
* or next year, overlap is up to 3 days. 
* 
* e.g. 2014/12/29 is Monday in week 1 of 2015 
*  2012/1/1 is Sunday in week 52 of 2011 
*/ 
function getWeekNumber(d) { 
    // Copy date so don't modify original 
    d = new Date(d); 
    d.setHours(0,0,0); 
    // Set to nearest Thursday: current date + 4 - current day number 
    // Make Sunday's day number 7 
    d.setDate(d.getDate() + 4 - (d.getDay()||7)); 
    // Get first day of year 
    var yearStart = new Date(d.getFullYear(),0,1); 
    // Calculate full weeks to nearest Thursday 
    var weekNo = Math.ceil((((d - yearStart)/86400000) + 1)/7) 
    // Return array of year and week number 
    return [d.getFullYear(), weekNo]; 
} 

你需要做的是加載視圖後,檢查當前週數:

$('.calendar-container').fullCalendar({ 
    viewDisplay: function(view) { 
     var selectedWeekNumber = getWeekNumber($('.calendar-container').fullCalendar('getView').start); 
     var currentWeekNumber = getWeekNumber(new Date()); 

     if (selectedWeekNumber[1] == currentWeekNumber[1]) { 
      $('a.date-link.prev').hide(); 
      $('a.date-link.next').show(); 
     } else { 
      $('a.date-link.prev').show(); 
      $('a.date-link.next').hide(); 
     } 
    } 
});