2016-08-03 20 views
2

Angular dateフィルタに新しい略式フォーマットを挿入することはできますか?角度フィルタに新しいフォーマットを追加しますか?

たとえば、私は現在、これを行うことができます:{{ myScope.timestamp | date: 'shortDate' }}

私がしたいのは{{ myScope.timestamp | date: 'paddedShortDate' }}なので、1桁の日付部分を先頭に0で埋め込むことになります。

私は私のためにこれを行うための自分のフィルタを作成することができます実現—私は、既存のフィルタがどのような方法でも広範である場合、より興味があります。

+0

Whelpは、いくつかの編集を行い、いくつかのことを再読しましたが、私はそれを行う方法を見つけました。 – FrankerZ

答えて

2

ソースコードhereを見ると、は$localeから取得されます。 ($locale.DATE_FORMATSがプライベートAPIであり、将来的に変更することができたよう)私はこれらの編集をお勧めしませんが、あなたが実行ブロックを経由してそれを行うことができるようになります。

app.run(['$locale', function($locale) { 
    $locale.DATETIME_FORMATS.paddedShortDate = 'MM/dd/yy'; 
}]); 

あなたが述べたように、あなたは」didnの別のフィルタを作成したいと思っていますが、それは私の意見ではより良い方法です。簡単なフィルタはうまくいくはずです:

var MY_DATETIME_FILTERS = { 
    'paddedShortDate': 'MM/dd/yy' 
}; 

app.filter('myFormat', ['$filter', function($filter) { 
    return function(format) { 
     return $filter('date')(input, MY_DATETIME_FILTERS[format] || format); 
    } 
}]); 
+0

このページへの今後の訪問者のための小さな訂正: 'return function(input、format){return $ filter( 'date')(入力、MY_DATETIME_FILTERS [format] || format); } ' – core

+0

私の回答を更新しました@core – FrankerZ

関連する問題