我想知道如何计算开始日期(datefield)是否小于flex中的结束日期(datefield)?

时间:2012-04-16 10:12:48

标签: actionscript-3 flex air flash-builder

我有一个表格,其中我添加了两个日期

  1. 开始日期
  2. 结束日期
  3. 我想知道我如何验证所选开始日期始终小于结束日期(实际上是到期日期)。

4 个答案:

答案 0 :(得分:4)

你可以做这样的事情来比较日期,

trace(validateDate(new Date(2008, 5, 1), new Date(2008, 6, 1)));  


protected function validateDate(date1:Date, date2:Date):Boolean
{
    return (date1.time < date2.time);

}

答案 1 :(得分:1)

你看起来像这样。试试这个功能:

public function compare (Start_date: Date, End_Date : Date) : Number
{
    var Start_date1 : Number = Start_date.getTime ();
    var End_Date1 : Number = End_Date.getTime ();

    if (Start_date1 > End_Date1)
    {
        result = 0;
    }
    else 
    {
        result = 1;
    }

    return result;
} 

答案 2 :(得分:0)

小样本

    

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.utils.ObjectUtil;
            import mx.events.CalendarLayoutChangeEvent;

            private function compareDate():void {
                var fromDateFormat:String = DateField.dateToString(new Date(fromDates.selectedDate), "YYYY/MM/DD");
                var toDateFormat:String = DateField.dateToString(new Date(toDates.selectedDate), "YYYY/MM/DD");
                var todayDateStr:String = DateField.dateToString(new Date(), "YYYY/MM/DD");

                var fromDate:Date = DateField.stringToDate(fromDateFormat, "YYYY/MM/DD");
                var toDate:Date = DateField.stringToDate(toDateFormat, "YYYY/MM/DD");
                var todayDate:Date = DateField.stringToDate(todayDateStr, "YYYY/MM/DD");


                if(ObjectUtil.dateCompare(todayDate , fromDate) >= 0 && ObjectUtil.dateCompare(todayDate , toDate) <=0){
                    Alert.show("Valid");
                }else{
                    Alert.show("InValid");
                }
            }
        ]]>
    </mx:Script>
    <mx:DateField id="fromDates"/>
    <mx:DateField id="toDates"/>

    <mx:Button id="checkValidity" click="compareDate()"/>

</mx:Application>

检查以下链接以进行验证

http://www.iamboredsoiblog.eu/flexfiles/start_end_date_check/srcview/index.html

答案 3 :(得分:0)

你可以直接使用两个dataFields并且可以使end dateField日期小于start dateField

你可以这样做

<mx:DateField id="stDate"/>
<mx:DateField id="endDate" selectableRange="{{rangeStart: stDate.selectedDate}}"/>

从上面你不需要将结束日期与开始日期进行比较...因为在结束日期字段中将不会启用小于开始日期...