Javascript AngularJS范围错误?chrome(43)和firefox(38.0.5)上的不同结果

Javascript AngularJS范围错误?chrome(43)和firefox(38.0.5)上的不同结果,javascript,angularjs,google-chrome,firefox,angularjs-ng-repeat,Javascript,Angularjs,Google Chrome,Firefox,Angularjs Ng Repeat,我最近在和angularjs闲逛,我发现了一些奇怪的事情 使用一个函数来确定存储在ng repeat内对象属性中的日期之间的日期差,我在chrome和firefox上得到了不同的结果 firefox的结果:(不正确) 铬的结果:(正确) 用于计算时差的函数: $scope.daysDiff = function (date) { var dateobj = new Date(date); var current = new Date("2015-06-28")

我最近在和angularjs闲逛,我发现了一些奇怪的事情

使用一个函数来确定存储在ng repeat内对象属性中的日期之间的日期差,我在chrome和firefox上得到了不同的结果


firefox的结果:(不正确)
铬的结果:(正确)

用于计算时差的函数:

$scope.daysDiff = function (date) {
        var dateobj = new Date(date);
        var current = new Date("2015-06-28");
        var resultDays = Math.floor(Math.abs((current - dateobj) / (86400000))); //1k *60*60*24
        return  resultDays;
    };
我在ng repeat中多次使用它来显示或隐藏元素,如下所示:

<tr ng-repeat="dat in data">
  ...
  <td><div class="inline" ng-show="daysDiff(dat.dateExpires) < 14">YES</div></td>
  ...
  <td><div class="inline" ng-show="daysDiff(dat.dateUpdate) < 14">YES</div></td>
  ...
</tr>

...
对
...
对
...
使用ng if时的行为完全相同

//编辑

这个问题不是关于用angular生成合适的表,而是关于chrome和firefox之间的不一致性

问题在于,由于某些原因,这些表达式在firefox中没有正确计算。你可以在我上面所附的plunker示例中看到它。 尝试在chrome中打开,然后在firefox中打开

//编辑#2 为清晰起见,添加了td标签


注意:同样的问题发生在angular 1.3中问题在于日期()对象本身。。chrome能够解析日期2015-07-7而firefox返回的日期对象无效。与2015-07-07工程罚款

工作示例


dateExpires:“2015-07-”+((i可能是@lossleader的副本)这是一个完全不同的问题
dateExpires: "2015-07-" + ((i<3) ? ("0"+(i + 7)) : (i + 7)),