禁用日期字段中当前日期之前的所有日期

时间:2010-02-19 20:46:03

标签: flex actionscript-3

如何在flex中创建DateField,这将禁用今天当前日期之前的所有日期。

<mx:DateField id="dateField2" yearNavigationEnabled="true" 
                disabledRanges="{[ {rangeEnd: new Date(dateBeforeCurrentDate} ]}" color="0x000000"/>

我知道我必须像上面的代码那样做。但我不知道如何获取dateBeforeCurrentDate,因此将禁用昨天的所有日期。

请告诉我。

此致 Zee的

6 个答案:

答案 0 :(得分:3)

我认为你坚持使用毫秒算术。这就是Adobe's docs中使用的内容:

function getYesterday():Date {
    var today:Date = new Date();
    var millisecondsPerDay:Number = 1000 * 60 * 60 * 24;

    var yesterday:Date = new Date();
    yesterday.setTime(today.getTime() - millisecondsPerDay);
}

如果您要进行更多的日期算术,您可以拉入库来执行此操作(例如,请参阅Flex Date Utils)。

答案 1 :(得分:2)

我想你需要这个:

<mx:DateField disabledRanges="{[{rangeEnd: new Date()}]}"/>

当前日期只是“新日期()”。

答案 2 :(得分:1)

这样的工作:

disabledRanges="{[{rangeEnd: new Date((new Date()).getTime() - (1000*60*60*24))}]}"
selectableRange="{{rangeStart : new Date()}}"

您可以将范围提取到可绑定对象中。

答案 3 :(得分:1)

我相信这应该可以解决问题:

<mx:DateField disabledRanges="{[{rangeEnd: new Date(null, null, new Date().date - 1)}]}"/>

答案 4 :(得分:0)

为什么要使用比以下更复杂的东西:

<mx:DateField disabledRanges="{[{rangeEnd: new Date()}]}"/>
<mx:DateField selectableRange="{{rangeStart : new Date()}}" y="50"/> 

www.nucleusplus.com

答案 5 :(得分:0)

disabledRanges="{[{rangeEnd: new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-1)}]}"

这对我有用:)