A w którym miejscu tego kodu choćby próbujesz cofnąć datę o 14 dni? Wywołujesz też metodę .getDate() przekazując jej jakiś argument... to nie ma sensu -- ta funkcja nie przyjmuje żadnych argumentów i zwraca dzień miesiąca danej daty (!). Zresztą tak właśnie używasz jej pare linijek niżej.
Co siedzi w document.form.data.value
? Data w formacie, jaki opisałeś? Czyli "10/25/2011 13:34"? I dodajesz do tego... jeden? Yyy?
Co do jQuery, to ta biblioteka nie ma tutaj absolutnie nic do gadania. Ona pomaga przy manipulacji DOM, a nie przy datach czy przy wszystkim innym.
Zrobię jakąś dziwną promocję i dam Ci rozwiązanie, ale normalnie jeśli ktoś nie wykazuje inicjatywy (sorki zią, ale nie miałeś tam nawet liczby "14"! więc nie powiesz mi, że Twój kod w ogóle szedł w kierunku odejmowania 14 dni), to tematy lądują w dziale Praca...
function daysEarlier(referenceDate, numberOfDays) {
var SECONDS_IN_A_DAY = 24 * 3600;
var MILLIS_IN_A_DAY = SECONDS_IN_A_DAY * 1000;
var earlierDate = new Date();
earlierDate.setTime(referenceDate.getTime() - numberOfDays * MILLIS_IN_A_DAY);
return earlierDate;
}
// i sposób użycia
var a = new Date("10/25/2011 13:34"); // ustaw sobie to tak jak masz, z tego inputa
var twoWeeksEarlier = daysEarlier(a, 14);
Tak naprawdę da się to napisać w jednej linijce; można też wywalić .getTime() i skorzystać z implementacji valueOf() dla dat i automatycznej konwersji... ale tak, jak jest wyżej, jest bardziej opisowo. Choć nie wiem czy w ogóle to przeczytasz, czy tylko wkleisz i powiesz "dzięki, działa!" lub "coś nie działa" :P