我有一个表格,其中我添加了两个日期
我想知道我如何验证所选开始日期始终小于结束日期(实际上是到期日期)。
答案 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}}"/>
从上面你不需要将结束日期与开始日期进行比较...因为在结束日期字段中将不会启用小于开始日期...