2017-07-29 5 views
0

Ich habe Json Objekt-Array zu einer Tabelle gebunden. Objekte haben eine Datumsspalte, die im Datumsformat aber Zeichenfolge ist. Ich muss das Datumsformat ändern.St-Tabelle konvertieren Zeichenfolge bis zum Datum

Ich habe versucht;

Aber, da es eine Zeichenfolge ist, ist es nicht formatiert. Ich möchte es nicht in einer Schleife um der Leistung willen konvertieren. Gibt es eine Möglichkeit, diese Zeichenfolge in Datum zu konvertieren und dann auf HTML-Teil zu formatieren?

Antwort

0

Eine Möglichkeit besteht darin, einen eigenen Filter zu erstellen und dann den Datumsfilter zu verwenden.

Dieser Roh-/Rohfilter erwartet eine JJJJMMTT-Zeichenfolge und erstellt daraus ein Datumsobjekt, mit dem Sie den Datumsfilter von winkel verwenden können.

app.filter('strToDate', function() { 

    return function(input) { 
    var year  = input.substring(0,4); 
    var month  = input.substring(4,6); 
    var day   = input.substring(6,8); 
    // Do filter work here 

    return new Date(year,month,day); 

    } 

}); 

und dann

<td>{{row.availabledate | strToDate | date:'MMMM dd, yyyy'}}</td> 

Hier ist ein Plunker Verbindung mit Arbeitsbeispiel: https://plnkr.co/edit/hn5StpktiMLq2gWHAszu?p=preview

Sie könnten auch nur Ihre Filter das formatierte Datum machen zurückzukehren.

+0

Dank, ist das, was ich für –

+0

Glad zu helfen suchen, Könnten Sie bitte die Antwort als eine akzeptierte Antwort markieren, wenn es zufriedenstellend war :) – Bergur

0

Eine andere Möglichkeit, die ganze Arbeit im Inneren des Filters zu tun:

app.filter('strToDate', function($filter) { 
//1. date value 
//2. the format input by user 
return function(input, format) { 
    //Create the date object 
    var year  = input.substring(0,4); 
    var month  = input.substring(4,6); 
    var day   = input.substring(6,8); 
    var newDate = new Date(year,month,day); 
    // return the format selected 
    return $filter('date')(newDate , format) 
    } 
}); 

Sie den Filter wie folgt verwenden können:

<td>{{row.availabledate | strToDate :'MMMM dd, yyyy'}}</td> 
+0

das funktioniert auch, danke –

Verwandte Themen