2009-09-15 37 views
10

Tenemos una aplicación en la que el usuario debe ingresar una fecha cuyo valor no es más de 30 días después de la fecha actual (la fecha en que el usuario usa la aplicación). Esta es una aplicación Flash, por lo tanto, necesito una manera de agregar 30 días a la fecha actual y obtener la fecha correcta. Algo así como en JavaScript:Agregar días hasta la fecha en ActionScript

myDate.setDate(myDate.getDate()+30); 

O en C#:

DateTime.Now.Add(30); 

¿Existe tal cosa en ActionScript?

Respuesta

27

Mientras que las otras respuestas trabajarán estoy seguro, es tan fácil como hacer:

var dte:Date = new Date(); 
dte.date += 30; 
//the date property is the day of the month, so on Sept. 15 2009 it will be 15 

Esto incluso se incrementará el mes si es necesario y año también. Puede hacer esto con las propiedades de mes y año también.

+1

¡Eso es genial! Solo quiero enfatizar que esto solo funciona en AS3 –

+1

Eso es verdad. También recuerde que la propiedad del mes está basada en 0. Entonces enero es el mes 0 y diciembre es el mes 11. –

1

Escribo el código desde lo alto de mi cabeza, sin compilarlo, pero usaría getTime(). Algo así como:

var today : Date = new Date(); 
var futureDate : Date = new Date(); 
futureDate.setTime(today.getTime() + (1000 * 60 * 60 * 24 * 30)); 

1000 * 60 * 60 * 24 * 30 = milisegundos * segundos * minutos * horas * día

tiene sentido?

3

Mi TimeSpan class podría resultar útil en este caso (que es un puerto de .NET System.TimeSpan):

var now : Date = new Date(); 
var threeDaysTime : Date = TimeSpan.fromDays(3).add(now); 
+0

Gracias, otros ejemplos acaba de añadir días, pero no aumentó el mes. – Mark

5

Sugiero que se mira aquí: How can you save time by using the built in Date class?.

Debe ser algo como esto:

var date:Date = new Date(); 
date.setDate(date.date + 30); 
+1

date.date - Las propiedades distinguen entre mayúsculas y minúsculas. – Virusescu

+0

Correcto, he actualizado el código. Nunca me gustó la convención de nombres ActionScript;) –

2

@Zerata

Adición de milisegundos directamente no va a funcionar si las fechas están al otro lado día de cambio de ahorro de luz ...

Sin embargo, se puede añadir directamente segundos: Fecha

var: Fecha = nueva fecha(); date.seconds + = 86400; => esto funciona incluso si las fechas están en el cambio de DLS.

Maurice

Cuestiones relacionadas