サーバ側からjsonでdatetime型を文字列で受け取ったりして、それをクライアント側でいい感じのフォーマットに変更する方法です。
AngularJSというより、JavaScriptの一般的なお作法の話かも。
今回は文字列をDate型にパースして、AngularJS上で表示調整します。
単純にやると、これで
// JavaScriptで文字列をパース Date.parse(date);
// Angularで整形 {{パースしたデータ | date:'yy/MM/dd HH:mm'}}
Chromeではこれで行けたんで安心してたらIEもFireFoxもエラーが起きてた。
あれこれ調べるとこんな情報が→parseメソッド
元データがCakePHPでdatetimeで保存してて「2014-01-27 18:11:04」みたいな感じだったんだけど、これだとparseダメみたいで。
ついでにnew Dateもしないとダメみたいで。
逆にChromeはなんで正常に動いてたんだろうというぐらい抜けまくりでした。ということで。
// コントローラ内のメソッド $scope.parseDate = function(d) { // ハイフンをスラッシュに全置換 rep = d.replace( /-/g, "/" ); // パース! date = Date.parse(rep); // newして返す! return new Date(date); }
// HTML側 {{parseDate(post.datetime) | date:'yy/MM/dd HH:mm'}}
これでIEとFireFoxでも行けました。
こういうの苦戦するのつらい。