求flex日期计算的方法
请教flex如何计算2009-01-01 到 2012-01-01这两个日期相差了多少个月?
/** * 返回两个字符串日期相差的月份数 * */ public static function obtainIntervalMonths(startYM:String, endYM:String):int { if (!startYM || startYM.length != 6 || !endYM || endYM.length != 6) { return 0; } var dateFormart:DateFormatter = new DateFormatter(); dateFormart.formatString = "YYYYMM"; var startDate:Date = new Date(Number(startYM.substring(0,4)),Number(startYM.substring(4,6))-1); var currentYM:String = dateFormart.format(startDate); var result:Array = []; while (currentYM <= endYM) { result.push(currentYM); startDate.setMonth(startDate.getMonth()+1,1); currentYM = dateFormart.format(startDate); } return result.length; }
var day1:String = "2009-01-01"var day2:String = "2012-01-01"trace(getDay(day1,day2))function getDay(va:String,vb:String):int{ var tempa:Array = va.split("-") var tempb:Array = vb.split("-") var year:int = int(tempb[0])-int(tempa[0])-1 var month:int = int(tempb[1])-int(tempa[1]) return year*12 + month}
[解决办法]
取得两个日期各自的毫秒数然后相减,再换算就可以了