如何使用actionscript比较2个日期的值我在我的程序中执行了这个代码..
var time1:Date = new Date(Number(fromDate.substr(0,4)),Number(fromDate.substring(5,7))-1, Number(fromDate.substring(8,10))); var time2:Date = new Date(Number(toDate.substr(0,4)),Number(toDate.substring(5,7))-1, Number(toDate.substring(8,10))); if(time1.getTime() > time2.getTime()) { Alert.show(time1 + ” is after ” + time2); }
我得到错误:错误:令牌流的意外结束
AS3不支持Python之类的时间增量类,所以这实际上有点棘手.比较日期时有很多事情需要担心:
夏令时(当春季和秋季某些国家的时钟变化一小时时)
时区
闰年
最粗略的做事方法就是使用time
日期对象的属性.通过这种方式,您可以获得以毫秒表示的两个日期之间的准确差异:
var date1:Date = new Date(2001, 9, 12); // Oct. 12, 2001 var date2:Date = new Date(2010, 5, 22); // Jun. 22, 2010 var differenceInMilliseconds:Number = date2.time - date1.time;
使用此time
属性,您可以执行诸如检查一个日期是在另一个日期之前还是之后的事情.您还可以通过定义一些常量来对两个日期之间的距离进行粗略计算:
const MILLISECOND_PER_SECOND:int = 1000; const SECOND_PER_MINUTES:int = 60; const MINUTES_PER_HOUR:int = 60; const HOURS_PER_DAY:int = 24; // ... etc ... var differenceInSeconds:Number = differenceInMilliseconds / MILLISECOND_PER_SECOND; var differenceInMinutes:Number = differenceInSeconds / SECOND_PER_MINUTES; var differenceInHouse:Number = differenceInMinutes / MINUTES_PER_HOUR; var differenceInDays:Number = differenceInHouse / HOURS_PER_DAY;
一旦你达到了几天的日子,就可以解决夏令时的问题,因为1小时的变化可能会让它看起来好像已经过了一整天了.经过几天,几周或几个月,你会遇到闰年问题.