Actionscript日期比较

时间:2011-01-20 21:51:18

标签: actionscript date operators equality

在我的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. 为什么普通的等式运算符不适用于动作中的日期?
  2. “>” 中以及“<”运营商似乎工作正常,但他们可以信任吗?
  3. 他们为什么会工作而不是平等操作员?
  4. 在比较只返回-1,0或1的日期时,我可以使用一种标准方法(我知道我可以轻松创建自己的,但我宁愿使用现有的实用程序类)?
  5. 提前致谢。

2 个答案:

答案 0 :(得分:15)

回复:#4

您可以使用ObjectUtil.dateCompare()函数来获取您要查找的结果。

mx.utils.ObjectUtil.dateCompare()

答案 1 :(得分:6)

  1. 因为日期是对象(类的实例),而不是本机数据类型,所以它们总是不同的,除非它是对同一实例的不同引用。
  2. 可能是因为它们在比较时会转换为原生格式(数字)(参见type conversions)。不确定它是否被强制转换为数字或字符串?一定要测试
  3. 因为他们不平等;他们不是同一个对象。
  4. 你做的比较(使用getTime())是你猜的最好的东西。
相关问题