数月AS3 DATE()

时间:2016-06-30 10:24:40

标签: actionscript-3

我在统计页面上工作,显示了12个月的滚动数字。我创建了一个数组来保存月份和一个for循环来填充数组,从当前月份开始作为数组中的第一个元素

select a.cId,a.pId,a.uId,b.catId,b.catName,b.tId,b.tName,b.tEvent from T2 a right outer join T1 b
on a.cId = b.cId and a.pId =b.pId ;

跟踪产生了这个:

staMonth:6 staMonth:7 staMonth:8 staMonth:9 staMonth:10 staMonth:11 staMonth:0 staMonth:2 staMonth:3 staMonth:4 staMonth:5 staMonth:6 staMonth:7

我不得不做双重服务..第1个月在哪里?那是我吗?我是完全愚蠢的吗?

当我修改for循环时:

var myDate:Date = new Date();
for(var mn:uint=0; mn<12;mn++){
    myDate.setMonth(myDate.getMonth()+1);
    trace("statMonth +: "+ myDate.month);
    }

它追踪: staMonth:6 staMonth:7 staMonth:8 staMonth:9 staMonth:10 staMonth:11 staMonth:0 staMonth:2 staMonth:3 staMonth:4 staMonth:5 staMonth:6 staMonth:7 staMonth:8 staMonth:9 staMonth:10 staMonth:11 staMonth:0 staMonth:1 staMonth:2

2 个答案:

答案 0 :(得分:3)

因为二月只有28天,有时候是29天。你继续加1个月到当前日期,即6月30日。经过7个周期后,日期将是1月30日。增加一个月可能会导致3月1日。

答案 1 :(得分:1)

我修改了您的代码以包含date属性。

var myDate:Date = new Date();
for(var mn:uint=0; mn<20;mn++)
{
    myDate.setMonth(myDate.getMonth()+1);
    Wonderfl.log("statMonth: "+ myDate.month + " " + myDate.date);
}   

正如您在下面的结果中看到的那样,错过的二月(请参阅Ruud Lender's answer)会导致date值的偏移,在第二遍(明年)中会导致二月显示起来。

statMonth: 6 30
statMonth: 7 30
statMonth: 8 30
statMonth: 9 30
statMonth: 10 30
statMonth: 11 30
statMonth: 0 30
statMonth: 2 2
statMonth: 3 2
statMonth: 4 2
statMonth: 5 2
statMonth: 6 2
statMonth: 7 2
statMonth: 8 2
statMonth: 9 2
statMonth: 10 2
statMonth: 11 2
statMonth: 0 2
statMonth: 1 2
statMonth: 2 2