2011-12-13 14 views
51

questo è il mio codicecome sottrarre una settimana da questa data in jquery?

var myDate = new Date(); 
todaysDate = ((myDate.getDate()) + '/' + (myDate.getMonth()) + '/' + (myDate.getFullYear())); 
$('#txtEndDate').val(todaysDate); 

ho bisogno value = data txtEndDate di oggi - una settimana di

+0

Questo non ha nulla a che fare con jQuery. –

risposta

128

È possibile modificare una data utilizzando setDate. Si corregge automaticamente per il passaggio ai nuovi mesi/anni ecc

var oneWeekAgo = new Date(); 
oneWeekAgo.setDate(oneWeekAgo.getDate() - 7); 

E poi andare avanti per rendere la data in una stringa in qualsiasi questione che si preferisce.

+0

la sua impostazione la data come questa .. Martedì 06 2011 18:24:34 GMT + 0530 (Ora solare India) .. Ho bisogno che la data sia in questo formato ... 13/11/2011 come faccio adesso? plz help..thanks – Infinity

+2

Puoi formattarlo esattamente come preferisci. Il codice sopra riportato è per ottenere la data che è esattamente una settimana da ora. Puoi quindi procedere e formattare esattamente come stai facendo con 'todaysDate' usando' ... getDate() + '/' ... '. Si noti che 'getMonth()' è basato su 0, motivo per cui si ottiene '11' per dicembre, lì ... –

+2

Funziona se si supera un limite di mese? –

2

Partenza Date.js. È davvero pulito!

http://www.datejs.com/

Qui ci sono un paio di modi per farlo usando Date.js:

// today - 7 days 
// toString() is just to print it to the console all pretty 

Date.parse("t - 7 d").toString("MM-dd-yyyy");  // outputs "12-06-2011" 
Date.today().addDays(-7).toString("MM-dd-yyyy"); // outputs "12-06-2011" 
Date.today().addWeeks(-1).toString("MM-dd-yyyy"); // outputs "12-06-2011" 

Come nota a margine non correlato, controlli anche Moment.js così ... Credo che il 2 biblioteche integrano a vicenda :)

http://momentjs.com/

+0

Non hai bisogno di una libreria per qualcosa di così semplice, per non parlare di uno complesso come momentjs. –

+0

@DanDascalescu, corretto, ma ciò non garantisce un downvote. – Hristo

6
var now = new Date(); 
now.setDate(now.getDate() - 7); // add -7 days to your date variable 
alert(now); 
+0

Questa è la stessa della risposta accettata. –

+0

@DanDascalescu, beh, c'era una differenza di ~ 2 minuti tra i post (5 anni fa)! –

16

farei qualcosa come

var myDate = new Date(); 
var newDate = new Date(myDate.getTime() - (60*60*24*7*1000)); 
+7

, ma dovrei essere consapevole di effetti divertenti se le due date sono entrambe le parti dell'ora legale. – Alnitak

+0

Un grande aiuto! Mi piace un po 'di più questo metodo. Sono ossessionato dagli one-liner però. Quindi lo uso: 'var date = new Date (new Date(). GetTime() - (60 * 60 * 24 * 7 * 1000))' – Shaidar

+0

Non è necessario il '.getTime() '. Funziona altrettanto bene: 'new Date (new Date() - 60 * 60 * 24 * 7 * 1000)'. –

Problemi correlati