2017-02-23 3 views
0

Können sagen, ich habe ein divAngularJS Änderungsdatum (nicht Datum obj) in div

<div class="date-display">{{date.displayModofiedDate}}</div> 

, die ein Objekt empfängt, die wie folgt aussieht: SUNDAY 25 oder TUESDAY 12 aber es ist kein Date-Objekt. Wie kann ich erreichen, dass die Wochentage nur 3 Buchstaben lang sind? So dass es aussieht wie MON 25 oder WED 02

Ich kann nicht zu | date: 'EEE dd', weil es keine Date-Objekt, und limitTo nicht funktionieren entweder, weil ich die Zahlen am Ende des Strings EnEd.

+0

scheint wie ein Fall für einen regulären Ausdruck zurückzukehren. – Claies

+2

[oder substring] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring) – alphapilgrim

+2

Erstellen Sie Ihren eigenen Filter, der split() stringweise, substring() der erste Wert und Join() das Array. – Gilsdav

Antwort

1

, wenn die Zeichenfolge immer dieses Format kommen, dann können Sie einen benutzerdefinierten Filter wie folgt erstellen Zeichenfolge

.filter('dateTime',function($filter){ 
    return function(obj){ 
    var arr = obj.split(" ") 
    return arr[0].substring(0, 3) +" "+ arr[1]; 
    } 
}) 

angular.module("app",[]) 
 
.controller("ctrl",function($scope){ 
 
\t $scope.name = ["SUNDAY 12","TUESDAY 10","MONDAY 12"]; 
 
}) 
 
.filter('dateTime',function($filter){ 
 
    return function(obj){ 
 
    var arr = obj.split(" ") 
 
    return arr[0].substring(0, 3) +" "+ arr[1]; 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    <div ng-repeat="item in name" > {{item | dateTime}} 
 

 
    </div> 
 
</div>