JavaScript: jQuery Datepicker — простое выделение конкретных дней, кто может помочь? (источник внутри)

я хочу использовать 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;
}

Календарь появляется, но там ничего не выделено. Где проблема в моем коде? Если бы кто-нибудь мог помочь, это было бы здорово.

Другим вариантом/решением может быть: отключить все даты, но сделать доступными только даты в массиве.

Спасибо!


person Klicker.eu    schedule 29.04.2010    source источник


Ответы (2)


позвольте рассказать вам о некоторых проблемах ...

1 . var dates = [30.04.2010, 05.01.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. демонстрация

person Reigel    schedule 29.04.2010
comment
как инициализируется дата параметра, какова дата начала и окончания этого значения для функции highlightDays(date)? - person Rajavel D; 12.08.2014

Есть проблема с часовым поясом.

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, ''];
 } 
person geo    schedule 07.12.2010