2011-12-13 14 views
51

este es mi código¿Cómo restar una semana de esta fecha en jquery?

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

necesito valor = fecha de hoy de txtEndDate - un semana

+0

Esto no tiene nada que ver con jQuery. –

Respuesta

128

puede modificar una fecha con setDate. Se corrige automáticamente para cambiar a nuevos meses/años etc.

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

Y luego seguir adelante para hacer que la fecha en una cadena en cualquier asunto que prefiera.

+0

está fijando la fecha como esta ... Martes 06 de diciembre de 2011 18:24:34 GMT + 0530 (Hora estándar de la India) ... Necesito la fecha para estar en este formato ... 13/11/2011 ¿Cómo hago eso? ¿ahora? por favor ayuda ... gracias – Infinity

+2

Puede formatearlo exactamente como lo desee. El código anterior es para obtener la fecha que es exactamente una semana a partir de ahora. Luego puede continuar y formatearlo exactamente como lo hace actualmente con 'todaysDate' usando' ... getDate() + '/' ... '. Tenga en cuenta que 'getMonth()' está basado en 0, por lo que obtiene '11' para diciembre, allí ... –

+2

¿Funciona esto si cruza un límite de un mes? –

2

Salida Date.js. ¡Es realmente genial!

http://www.datejs.com/

Aquí hay un par de maneras de hacerlo 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" 

Como una nota sin relación, se echa un vistazo Moment.js así ... Creo que la 2 bibliotecas se complementan entre sí :)

http://momentjs.com/

+0

No necesita una biblioteca para algo tan simple como esto, y mucho menos para uno complejo como momentjs. –

+0

@DanDascalescu, correcto, pero eso no garantiza un voto a la baja. – Hristo

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

Esto es lo mismo que la respuesta aceptada. –

+0

@DanDascalescu, Bueno, ¡hubo una diferencia de ~ 2 minutos entre las publicaciones (5 años atrás)! –

16

me gustaría hacer algo como

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

yo también, pero tenga en cuenta los efectos divertidos si las dos fechas están al lado del horario de verano. – Alnitak

+0

¡Gran ayuda! Me gusta este método un poco más. Sin embargo, estoy obsesionado con los one-liners. Así que uso esto: 'var date = new Date (new Date(). GetTime() - (60 * 60 * 24 * 7 * 1000));' – Shaidar

+0

No necesita '.getTime() '. Esto funciona igual de bien: 'nueva Fecha (nueva Fecha() - 60 * 60 * 24 * 7 * 1000)'. –

Cuestiones relacionadas