2017-06-05 5 views
-1

私はこのコードを書きました。 日付列に過去にあった行をマークする必要があります。AngularJSの比較日が間違っています

 <tr ng-repeat="row in records | orderBy: sortType : sortReverse" ng-class="{past_date:(date | date:'y M d') > (row.oddate | date:'y M d')}"> 
      <td>{{ $index +1 }}</td> 
      <td>{{row.pname + " " + row.sname}}</td> 
      <td>{{row.areaname}}</td> 
      <td>{{row.oddate}}</td> 
      <td>{{row.odtime}}</td> 
      <td>{{row.cnt}}</td> 
     </tr> 

私のアプリがあります:すべてのものが正常に動作します

$scope.date = $filter('date')(Date.now(), 'yyyy-MM-dd');//new Date(); 

(過去の行がマークされていた)が、いくつかの他の行があまりにもマークされ

これは、コードです! (05/06/2017前) - 良い、06/06/2017 - 08/06/2017は表示されていません - 良い、11/06/2017-29/06/2017がマークされました - 問題!、02/07/2017以降マークされていない - 良い)。

私は確認し、すべての日付は正常です。問題になることが何

FIDDLE

ありがとうございます!

+0

問題を複製するplunker/fiddle/snippetを作成してください。 – Sajal

+0

AngularJSの日付を正しく比較してください。問題がどこか他の場所にあると思います。https://jsfiddle.net/ADukg/11493/ .. $ scope.date2を変更して確認できます。 – talentedandrew

+0

@Sajal https:/ /jsfiddle.net/7MhLd/2572/ –

答えて

2

問題は、文字列で起こるあなたがy M dに日付をキャストしているので、 "2017年5 1は"

"2017 11 1" よりも大きいと評価されます "5"> "11"

を比較解決方法:ゼロ埋め込み形式を使用するyMMdd

+0

ありがとう!多くの助けをした –

関連する問題