12

ngày thực tế đến từ JSONAngular JS Định dạng ngày lọc bên Ng-Lặp lại không định dạng

enter image description here

Cần phải định dạng nó như dưới đây.

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

Đang sử dụng mã bên dưới để Định dạng ngày trong Ng-Lặp lại.

<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> 

Nhưng nó không hoạt động vẫn hiển thị giống nhau.

Ngày nên được thông qua như ngày mới như trong dưới jsfiddle Ví dụ http://jsfiddle.net/southerd/xG2t8/

Note chắc chắn làm thế nào để làm điều đó bên trong ng-repeat ??. Vui lòng giúp tôi về điều này. Cảm ơn bạn đã nâng cao

Trả lời

21

Tôi đã tạo bộ lọc của riêng mình để giải quyết vấn đề này. Bộ lọc ngày không thể lấy một chuỗi, cần một đối tượng ngày tháng.

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

sau đó bạn có thể làm:

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

đã cố gắng để làm một chức năng tương tự nhưng lồng vào bên trong $ phạm vi và vui Tôi thấy điều này là hữu ích (và có thể dễ dàng tái sử dụng trên các vùng khác nhau). Cảm ơn. Đã bỏ phiếu! – Angelo

+0

Cảm ơn, điều này thực sự giúp tôi –

+0

Cảm ơn rất nhiều, điều này đã giải quyết được vấn đề của tôi với công cụ chọn nhiều ngày – Suman

5

tôi sử dụng moment.js cho thời gian ngày UI của tôi xử lý (có ngay cả một gói angular-moment Chòi chơi cho thoải mái cũng)

.210

sử dụng:

<span>{{product.prod_start_date | amDateFormat:'MM/dd/yyyy'}}</span> 

Nó có một loạt các lựa chọn khác cũng có ngày tương đối, vv

1

Tôi đã cập nhật bộ điều khiển mà bạn thấy trong fiddle và ở đây là bạn updated filter

Ở đây tôi đã sử dụng các $filter('date') đó là một tính năng của Angular chính nó để định dạng ngày ở định dạng mong muốn.

Dưới đây là bộ điều khiển:

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); 
}