2009-09-15 50 views
10

我們有一個應用程序,用戶必須在當前日期(用戶使用應用程序的日期)之後輸入值不超過30天的日期。這是一個Flash應用程序,因此我需要一種方法將30天添加到當前日期,並獲得正確的日期。喜歡的東西在JavaScript:在動作腳本中添加日期

在C#
myDate.setDate(myDate.getDate()+30); 

或者:

DateTime.Now.Add(30); 

有沒有在ActionScript這樣的事情?

回答

27

而其他的答案將工作我敢肯定,它是那麼容易,因爲這樣做的:

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 

如果有必要這樣,即使增加了一個月,一年也是如此。您也可以使用月份和年份屬性來執行此操作。

+1

太棒了!我只想強調,這隻適用於AS3 – 2009-09-17 08:03:05

+1

這是真的。還要記住,month屬性是基於0的。所以1月份是0月份,12月份是11月份。 – 2009-09-17 12:37:15

1

我從頭頂寫代碼,沒有編譯它,但是我會使用getTime()。類似:

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

1000 * 60 * 60 * 24 * 30 =毫秒*秒*分鐘*小時*天

有道理?

3

TimeSpan class可能證明是有用的在這裏(它是.NET System.TimeSpan的端口):你看這裏

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

謝謝,其他的例子只是增加了天,但並沒有增加一個月。 – Mark 2014-04-01 00:32:30

5

我建議:How can you save time by using the built in Date class?

應該是這樣的:

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

date.date - 屬性區分大小寫。 – Virusescu 2009-09-15 13:40:16

+0

正確,我更新了代碼。 我從來不喜歡動作命名約定;) – 2009-09-15 14:14:40

2

@Zerata

直接添加毫秒,如果日期是跨越日光節約變化不會工作...

但是,你可以直接添加秒:

VAR日期:日期=新日期(); date.seconds + = 86400; =>即使日期跨DLS更改,也可以使用。

莫里斯