2011-10-26 26 views
5

Necesito establecer una fecha que sería de 30 días a partir de ahora teniendo en cuenta meses que son 28,29,30,31 días para que no se salte ningún día y muestre exactamente 30 días a partir de ahora. ¿Cómo puedo hacer eso?Javascript - Establecer la fecha 30 días a partir de ahora

+1

Ver [Fecha] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date) –

Respuesta

25

El "Date()" JavaScript objeto tiene todo cubierto:

var future = new Date(); 
future.setDate(future.getDate() + 30); 

Eso sólo va a hacer lo correcto. (Es un poco confuso que los captadores/definidores para el día de mes tienen los nombres que hacen.)

+1

No creo que esto funcione, al menos según los documentos: https: // developer. mozilla.org/es/JavaScript/Reference/Global_Objects/Date/setDate el parámetro para 'setDate' debe estar entre 1 y 31. Sin embargo, recuerdo que lo usé una vez y funciona, así que ... quizás sí ... – Domenic

+0

muchas gracias, ¿pueden confirmar que funciona? – Victor

+0

Añadiendo 'new Date (future.setDate (future.getDate() + 30)). ToString();' funciona para mí. – meagar

3
var now = new Date(); 
var THIRTY_DAYS = 30 * 24 * 60 * 60 * 1000; 
var thirtyDaysFromNow = now + THIRTY_DAYS; 
+0

No funciona para mí; 'thirtyDaysFromNow.toString()' produce "Fecha no válida". 'new Date (now + )' produce "Fecha no válida" o el mismo valor que 'now'. No creo que esto haga lo que crees que hace. – meagar

+3

Esto funcionará, pero en su lugar use 'var now = new Date(). GetTime();' –

+0

Buena captura @meagar y @ John Strickler; la 'nueva fecha' era errónea. – Domenic

5

escribí una biblioteca envoltorio Fecha que ayuda con el análisis, la manipulación, y las fechas de formato.

https://github.com/timrwood/moment

Aquí es cómo usted lo haría con Moment.js

var inThirtyDays = moment().add('days', 30); 
3

utilizando la fecha objeto nativo con una sintaxis sencilla y no hay bibliotecas externas:

var future = new Date('Jan 1, 2014'); 

future.setTime(future.getTime() + 30 * 24 * 60 * 60 * 1000); // Jan 31, 2014 

la fecha setTime y las funciones getTime usan milisegundos desde el 1 de enero de 1970 (link).

Cuestiones relacionadas