Pomniejszanie daty o 14 dni

0

Witam serdecznie,
kombinuję od dłuższego czasu jak odjąć 14 dni od daty w formacie: 10/25/2011 13:34... Wiecie może jak to zrobić?
Da się to jakoś prosto zrobić w JS/Jquery?

Aktualnie mam taki kod:

var dane = document.form.data.value;

        var a=new Date();
        a.setDate(a.getDate(dane)+1);

        var rok = a.getFullYear();
        var mies = a.getMonth();
        var dzien = a.getDate();
        var godz = a.getHours();
        var min = a.getMinutes();
        if (min < 10)
            min = '0' + min;
        var danefilnal = mies+"/"+dzien+"/"+rok+" "+godz+":"+min;

ale niestety nie działa :(

Z góry dziekuje za pomoc
Northwest

0

Skonwertuj wszystko na unix timestamp i odejmij 606024*14

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0