Meglio usare questa funzione per il tuo problema: Javascript Date Verify Whether A Date Falls Within Any Given Time Range (appena messa online per cui starà in beta un paio di giorni o giù di lì...)

Meglio usare quella perchè il costruttore dell' oggetto Date già si incarica di settare tutte le proprietà di una data nella maniera corretta una volta stabilito nel costruttore e dal costruttore quanto tempo aggiungere e secondo che unità di misura (anni, mesi, giorni, ore, minuti, secondi?).

Questo non è affatto certo che accada usando i metodi relativi come da me ipotizzato in un primo momento.

Cioè, una espressione come
dataPassatoMinima.setDate( data.getDate() -30);
non ti setterà anche il mese e anno corretti - e questo perchè... ti farà un cast avente come unità di misura il numero di giorni del mese ! Un concetto non a tutti noto e che anche io non ricordavo più in un primo momento.

In altre parole se tu setti un time range dicendo: meno sette giorni, e la data di riferimento è il primo gennaio 2011, ti potresti ritrovare con una data "aggiornata" che non ti dice che sette giorni in meno dal primo gennaio 2011 sarebbe il 25 dicembre 2010 ma che ti dice che sarebbe il... 25 gennaio 2011: ti va indietro di sette giorni, sì, ma dentro lo stesso mese!

Per questo non bisogna mai usare i metodi, ma il costruttore per settare somme o sottrazioni di date. La funzione di cui sopra appena messa online tiene conto proprio di questo.