2012-05-22 2 views
0

Я использую jquery tools date input. В моем приложении у меня есть функция, которая позволяет пользователю проверять свои личные данные на основе диапазона дат.
jquery tools dateinput: addDay (amount)

У меня есть текстовое поле ввода, которое загружает дату. Входные функции. Когда пользователь выбирает дату, он отображает его в: «dddd dd, mmmm yyyy» формат в текстовом поле.
Что я пытаюсь сделать, это добавить 7 дней (т.е. в неделю) и отображать новую дату в контейнере верхнего диапазона, чтобы объяснить более вот как это выглядит:

С: в пятницу, 18 мая 2012 To: // вот где я хочу быть: пятница 25, май 2012

Я пытаюсь использовать встроенную функцию API: addDay (сумма), но, кажется, не работает. У меня есть следующий код:

var ret_date = $(this).data("dateinput").getValue('dddd dd, mmmm yyyy'); 
//I tried: $(this).data("dateinput").addDay(7).getValue('dddd dd, mmmm yyyy') 
//but it kept the same currently selected date 
$("#to_field").html(ret_date); 

я искал в Интернете и SO, но не смог найти решение. Я вообще не разработчик интерфейса, поэтому мои знания с javascript/jquery не продвинуты.
Любая помощь очень ценится

ответ

1

Кстати, это то, что я в конечном итоге делает, и она работала:

$("#DateField").change(function(event, date) { 
     //I used format: yyyy-mm-dd 
     var ret_date= $(this).data("dateinput").getValue('yyyy-mm-dd'); 
     //Format the date using javascript 
     //--> For that 2 javascript prototypes have been created(check at the end of the answer)   
     var myDate = new Date(ret_date); 
     myDate.setDate(myDate.getDate()+7); 
     $("#FinalDateField").html(myDate.dateFormat("Y-m-d")); 
}); 

Прототипы:

Date.prototype.dateFormat = function(format) { 
    var result = ""; 
    for (var i = 0; i < format.length; ++i) { 
    result += this.dateToString(format.charAt(i)); 
    } 
    return result; 
} 

Date.prototype.dateToString = function(char) { 
    switch (char) { 
    case "Y": 
    return this.getFullYear(); 
    case "m": 
    return this.getMonth() + 1; //Since months are zero based, add 1 
    case "d": 
    return this.getDate(); 
    default: 
    return char; 
} 
}