12

faktyczna data pochodzących z JSONAngular JS filtr Format Data wewnątrz NG-Repeat nie formatowanie

enter image description here

należy sformatować go jak poniżej.

Effective Date : 2010-08-31 (trim the time stamp) 
End Date : 2010-08-31 (trim the time stamp) 

Korzystam z poniższego kodu do Formatowania daty wewnątrz Ng-Powtórz.

<li ng-repeat="product in data | startFrom:currentPage*pageSize | limitTo:pageSize" 
      ng-click="getAttributes(product)"> 
     {{product.prod_start_date| date:'MM/dd/yyyy'}} 
     {{product.prod_end_date| date:'MM/dd/yyyy'}} 
    </li> 

Ale to nie działa nadal wyświetla to samo.

Gdyby Data być przekazywane jako nową datę, jak pokazano w poniższej jsfiddle Przykład http://jsfiddle.net/southerd/xG2t8/

Uwaga pewien jak to zrobić wewnątrz ng-repeat. ?? Uprzejmie mi pomóż w tej sprawie. Dzięki z góry

Odpowiedz

21

Stworzyłem własny filtr, aby rozwiązać ten problem. Filtr daty nie może przyjąć ciągu, potrzebuje obiektu daty.

.filter('cmdate', [ 
    '$filter', function($filter) { 
     return function(input, format) { 
      return $filter('date')(new Date(input), format); 
     }; 
    } 
]); 

następnie można zrobić:

{{product.prod_start_date| cmdate:'MM/dd/yyyy'}} 
+0

próbuje zrobić podobną funkcję, ale zagnieżdżone wewnątrz $ zakresu i zadowolony, że to co jest pomocne (i może być ponownie użyte w różnych obszarach). Dzięki. Rewizja! – Angelo

+0

Dzięki, to naprawdę mi pomaga –

+0

Wielkie dzięki, to rozwiązało mój problem z wielokrotnym wyborem daty – Suman

1

Mam zaktualizowany sterownik, który pokazał na skrzypce i tutaj jest updated filter

Tutaj skorzystałem z $filter('date'), który jest cechą samego Angulara, aby sformatować datę w pożądanym formacie.

Oto kontroler:

function Scoper($scope,$filter) { 
    $scope.s = "2012-10-16T17:57:28.556094Z"; 
    var dateObj = new Date($scope.s); 
    $scope.dateToShow = $filter('date')(dateObj,'yyyy-MM-dd'); 
    console.log($scope.dateToShow); 
}