4

特定の日付を強調表示するために 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;
}

カレンダーが表示されますが、強調表示されているものはありません。コードのどこに問題がありますか? 誰かがそれを助けることができれば、それは素晴らしいことです.

別のオプション/解決策は次のとおりです。すべての日付を無効にしますが、配列内の日付のみを使用できるようにします。

ありがとう!

4

2 に答える 2

10

問題のいくつかを教えてみましょう...

1。var date = [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.  デモ

于 2010-04-29T07:02:32.533 に答える
3

タイムゾーンに問題があります。

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, ''];
 } 
于 2010-12-07T16:47:39.060 に答える