Angular.js の日付や通貨表示のフィルタを日本語表記に対応させる方法

JavaScript

AngularJSには、便利なフィルタが用意されています。

フィルタを使用すれば、日付や通貨のデータを簡単な表記で様々なフォーマットで表示することが出来ます。

AngularJSで日付や通貨を表示する例

例えば、dateに日付オブジェクト、moneyに数値データが入っている場合、以下のようにHTMLテンプレートを書けば、様々なフォーマットで表示することが出来ます。
金額の3桁区切りも簡単です。

{{ today }}
{{ today | date: 'medium' }}
{{ today | date: 'short' }}
{{ today | date: 'fullDate' }}
{{ today | date: 'longDate' }}
{{ today | date: 'mediumDate' }}
{{ today | date: 'shortDate' }}
{{ today | date: 'mediumTime' }}
{{ today | date: 'shortTime' }}
{{ money | currency }}

上記のHTMLはこんな感じで表示されます。

"2015-05-14T03:05:06.806Z"
5/14/15 12:05:06 PM
5/14/15 12:05 PM
Thursday, May 14, 2015
May 14, 2015
May 14, 2015
5/14/15
12:05:06 PM
12:05 PM
$1,000,000,000.00

HTMLのソースはこんな感じです。

<!doctype html>
<html ng-app="app">
<head>
<meta charset="utf-8">
<title>test</title>
</head>

<body>

	<div ng-controller="TestCtrl">
		<p>{{ today | date: 'fullDate' }}</p>
		<p>{{ money | currency }}</p>
	</div>

	<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
	
	<script>
		var app = angular.module('app', []);
		app.controller('TestCtrl', function($scope) {
			$scope.today = new Date();
			$scope.money = 1000000000;
		});
	</script>

</body>
</html>

日本語表記に切り替える

日付や通貨の表記が英語圏に合わせたものになっていますので、これを日本語圏の表記に切り替えるには、angular-i18nの日本語モジュールを追加読み込みするだけでOKです。

先程のソースの16行目に以下のコードを追加します。

<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
 ↓
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-i18n/1.2.15/angular-locale_ja-jp.js"></script>

たったこれだけで、なんと日本語表記に切り替わりました。

“2015-05-14T02:50:30.667Z”
2015/05/14 11:50:30
2015/05/14 11:50
2015年5月14日木曜日
2015年5月14日
2015/05/14
2015/05/14
11:50:30
11:50
¥1,000,000,000.00

サンプルはこちら

こうした定型のフォーマット以外にも、独自のフォーマットで表示することも可能です。
日付であれば、以下のページを参考にすれば簡単にカスタマイズできると思います。
date | AngularJS 1.2 日本語リファレンス | js STUDIO:

AngularJSのフィルタはとっても便利ですね。

コメント

タイトルとURLをコピーしました