在我的Actionscript代码中,我有两个日期:
var date1:Date = new Date(2011,1,1); var date2:Date = new Date(2011,1,1);
这不起作用:
var equal:Boolean = date1 == date2;
从阅读中我发现这是一个可行的替代方案,因为它只是从标准时间点获得毫秒数.
var equal:Boolean = date1.getTime() == date2.getTime();
所以我的问题是:
为什么普通的等式运算符不能在动作脚本中使用日期?
">"以及"<"运算符似乎工作正常,但它们可以被信任吗?
他们为什么会工作而不是平等运算符?
在比较只返回-1,0或1的日期时,我是否可以使用标准方法(我意识到我可以轻松创建自己的,但我宁愿使用现有的实用程序类)?
提前致谢.
回复:#4
您可以使用ObjectUtil.dateCompare()函数来获取您要查找的结果.
mx.utils.ObjectUtil.dateCompare()
因为日期是对象(类的实例)而不是本机数据类型,所以它们总是不同,除非它是对同一实例的不同引用.
可能,因为它们在比较时会转换为本机格式(数字)(请参阅类型转换).不确定它是否被强制转换为数字或字符串?一定要测试
因为他们不平等; 他们不是同一个对象.
您所做的比较(使用getTime())是您可以使用的最佳选择.