【问题标题】:How does angular.equals evaluate invalid date objects?angular.equals 如何评估无效的日期对象?
【发布时间】:2015-06-03 20:10:30
【问题描述】:

我知道我不应该使用无效的日期对象来相互比较,而是为了了解 angular.equal 如何以及为什么处理类似

angular.equals(new Date(''), new Date('')); //returns false, both objects are null

另一方面

angular.equals(null, null); //returns true

我在这里缺少什么? JSfiddle如果你觉得有需要

【问题讨论】:

    标签: javascript angularjs validation date


    【解决方案1】:

    如果您使用 angular .equals 实现只检查p1.getTime()p2.getTime() 的相等性,在这种情况下是NaNNaN 不是NaN。但是 1.2.x 以后的版本已经更改,因为在 .equals 上再次进行递归检查并且有一个条件:

     if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN
    

    在这种情况下,您将看到返回 true 的值。

    >=1.2.x

      else if (isDate(o1)) {
        if (!isDate(o2)) return false;
        return equals(o1.getTime(), o2.getTime()); //returns false
      }
    

    <1.2.x

     else if (isDate(o1)) {
        return isDate(o2) && o1.getTime() == o2.getTime(); //returns true
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多