2017-07-29 5 views
0

jsonオブジェクト配列をテーブルにバインドしました。オブジェクトには、日付形式の文字列がありますが、文字列です。私は日付形式を変更する必要があります。st-tableを文字列に変換する

試しました。

<tbody> 
<tr ng-repeat="row in table_data"> 
    <td>{{row.availabledate | date:'MMMM dd, yyyy'}}</td> 
</tr> 
</tbody> 

ただし、文字列なので、フォーマットされていません。私はパフォーマンスのためにループで変換したくない。この文字列を日付に変換し、html形式でフォーマットする方法はありますか?

答えて

0

1つの方法は、独自のフィルタを作成し、日付フィルタを使用することです。

この粗/生フィルタはYYYYMMDD文字列を期待して、その後、上の角度日付フィルタを使用することができ、そこから日付オブジェクトを作成します。

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

    } 

}); 

、その後

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

ここでは実施例とPlunkerリンクです:あなたはまた、自分のフィルターがフォーマットされた日付を返す作ることができるhttps://plnkr.co/edit/hn5StpktiMLq2gWHAszu?p=preview

+0

おかげで、それは、私は助けるために喜ん –

+0

探していたものですあなたが満足していれば、答えを受け入れられた答えとしてマークしてください:) – Bergur

0

フィルタ内のすべての仕事をしているもう一つの方法は、:

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

あなたはこのようなフィルタを使用することができます。

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

それも働く、ありがとう –

関連する問題