【问题标题】:Datefield Ranges - Flex日期字段范围 - Flex
【发布时间】:2011-09-29 04:13:40
【问题描述】:

我有两个 Datefields 。有没有办法可以将第二个 Datefield 的日期设置为指定范围(比如三天......?我尝试这样做但没有工作......不知道将日期转换回来字符串和格式化..这是代码

<mx:DateField disabledRanges="{[{rangeEnd: new Date(2011,05,31)}]}" id="dfield1" change="leaveDate()" parseFunction="null" width="100"  x="156" y="130"/>
<mx:DateField disabledRanges="{[{rangeEnd: new Date(2011,05,31)}]}" id="dfield2"  parseFunction="null" width="100"  x="426" y="130"/>

private function leaveDate():void {
    //var dateLeave:Date = dfield1.selectedDate;
    var myTime:Date =dfield1.selectedDate;
    dateAdd("date", 3, myTime);
    //car formatter1:Datef
    commentField.text+=myTime+"\n"
    //dfield2.selectedDate = returnDate
}
public static function dateAdd(datepart:String = "", number:Number = 0, date:Date = null):Date
        {
    if (date == null) {
        date = new Date();
    }

    var returnDate:Date = new Date(date.time);;

    switch (datepart.toLowerCase()) {
        case "fullyear":
        case "month":
        case "date":
        case "hours":
        case "minutes":
        case "seconds":
        case "milliseconds":
            returnDate[datepart] += number;
            break;
        default:
            /* Unknown date part, do nothing. */
            break;
    }
      return returnDate;
}

如果有人能提供帮助将不胜感激

【问题讨论】:

    标签: actionscript-3 apache-flex air mxml


    【解决方案1】:

    要对日期进行计算,您必须首先将它们转换为数字,即以纪元时间表示的日期或自 1970 年 1 月 1 日以来经过的秒数。然后,您可以对日期执行任何操作。例如:

    // Today
    var today:Date = new Date();
    
    // Tomorrow
    var tomorrow:Date = new Date();
    
    // How many seconds in a day ?
    var secsInOneDay:Number = 60*60*24;
    
    // Changes the tomorrow date to actually be tomorrow ^^
    tomorrow.setTime(today.getTime() + secsInOneDay);
    

    【讨论】:

      【解决方案2】:

      如果您想禁用在 dfield1 中选择的日期之前的日期和在 dfield1 中选择的日期之后三天之后的日期,请尝试以下操作:

      <mx:DateField disabledRanges="{[{rangeEnd: new Date(2011,05,31)}]}" id="dfield1" change="leaveDate()" parseFunction="null" width="100"  x="156" y="130"/>
      <mx:DateField disabledRanges="{[{rangeEnd: new Date(2011,05,31)}]}" id="dfield2"  parseFunction="null" width="100"  x="426" y="130"/>
      
      private function leaveDate():void {
         dfield2.disabledRanges = [ { rangeEnd:new Date(
         dfield1.selectedDate.fullYear,
         dfield1.selectedDate.month,
         dfield1.selectedDate.date - 1 ) },
         { rangeStart:new Date(
         dfield1.selectedDate.fullYear,
         dfield1.selectedDate.month,
         dfield1.selectedDate.date + 3 ) } ];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-23
        • 1970-01-01
        • 2014-04-23
        • 1970-01-01
        • 2015-10-24
        • 1970-01-01
        相关资源
        最近更新 更多