2010-04-29 28 views
4

我想使用Datepicker來突出顯示特定的日期。這裏是我的最新代碼:JavaScript:jQuery Datepicker - 簡單突出特定的日子,誰可以幫忙? (源內)

<script type="text/javascript"> 

var dates = [30/04/2010, 01/05/2010]; 

$(function(){ 

    $('#datepicker').datepicker({ 
     numberOfMonths: [2,3],     
     dateFormat: 'dd/mm/yy', 
     beforeShowDay: highlightDays 
    }); 

    function highlightDays(date) { 
     for (var i = 0; i < dates.length; i++) { 
      if (dates[i] == date) { 
          return [true, 'highlight']; 
        } 
      } 
      return [true, '']; 

} 

}); 
</script> 

我的CSS是:

#highlight, .highlight { 
    background-color: #cccccc; 
} 

好日曆來了,但並沒有什麼突出。我的代碼中的問題在哪裏? 如果任何人都可以提供幫助,那會很棒。

另一個選項/解決方案可能是:禁用所有日期,但僅提供數組中的日期。

謝謝!

回答

9

讓我們告訴你一些問題...

1。 var dates = [30/04/2010,01/05/2010];

不會存儲您的日期預期...它會做數學運算......

2.  將其更改爲字符串,但這種格式:mm/dd/yy
所以,你應該是這樣的:

var dates = ['04/30/2010', '05/01/2010']; 

  3.使用此功能:

function highlightDays(date) { 
     for (var i = 0; i < dates.length; i++) { 
      if (new Date(dates[i]).toString() == date.toString()) {    
          return [true, 'highlight']; 
        } 
      } 
      return [true, '']; 

} 

  4.如CSS:

td.highlight { 
    background-color: red; 
    border: 1px blue solid; 
} 

5.   demo

+0

參數「date」如何初始化函數highlightDays(date)的該值的開始日期和結束日期是什麼? – 2014-08-12 06:56:03

2

有問題時區。

function highlightDays(date) { 
    for (var i = 0; i < dates.length; i++) { 
     if (new Date(dates[i]).toString().substr(0, 16) == date.toString().substr(0, 16)) { 
      return [true, 'highlight']; 
     } 
    } 
    return [true, '']; 
} 
相關問題