如何做Flex日期扣除和添加

时间:2010-06-23 23:54:31

标签: flex actionscript-3

在flex中,我正在尝试进行日期演绎和添加,但无法找到方法。

例如为: public var dateNow:Date = new Date();

如何比dateNow早3个月获得日期?

感谢!!!

5 个答案:

答案 0 :(得分:9)

您可以使用Date构造函数。 Date的构造函数的第一个参数需要一年或一个时间戳。您可以使用Date.time属性从日期对象中获取时间戳。获得时间戳后,您可以在其中添加/减去一些秒数,然后将其传递给new Date(timestamp),您将得到一个代表新时间戳的全新日期。

编辑; 正如评论者指出的那样,时间操纵可能不是最好的方法。但您仍然可以使用Date构造函数,如下所示:

var now:Date = new Date();
var threeMonthsAgo = new Date(now.fullYear, 
                              now.month - 3,  
                              now.date, 
                              now.hour, 
                              now.minute, 
                              now.second, 
                              now.millisecond);

Date构造函数非常智能,可以处理负值或大于11的值。

答案 1 :(得分:3)

尝试使用DateUtils开源库。

我在Flextras日历中广泛使用它,效果很好。我很确定有一个DateAdd方法。要在3个月前获得日期,您只需添加负数3.

http://flexdateutils.riaforge.org/

答案 2 :(得分:0)

我不相信有内置日期算术。使用它时,即使official adobe documentation for the Date class也会从头开始创建日期数学。

看一下上面的链接。该文档使用静态方法创建一个DateMath类来执行所需的操作。鉴于此,我不确定为什么他们没有制作是标准的一部分,但这就是它的方式。我建议从那里复制并扩展它。

答案 3 :(得分:0)

另一个选择是Peter's Lates for lazy people,我喜欢它来自CF http://blog.flexexamples.com/2007/08/24/date-math-for-lazy-people/

答案 4 :(得分:0)

使用此:

var dObj:Date = new Date();

DateField_Now.formatString = DateField_LastWeek.formatString = "YYYY-MM-DD";

DateField_Now.selectedDate = dObj;

dObj["date"] += 7;
DateField_LastWeek.selectedDate = dObj;