2013年4月30日火曜日

AngularJS date filterで日付がずれる

AngularJSでDate Filterを使うと日付が一日ずれる。
例えば


{{ '2012-04-01' | date:'d MMM yyyy' }} convert -> 31 Mar 2012

このように日付をフィルターした場合、UTCに変換され、前日の日付となってしまう。
この現象はバージョン1.1.2で修正されて、ローカルのタイムゾーンを使用するようになる。

しかしこれは今のところunstableなバージョンなので、アップデートしないで、保存時にUTC->JSTへ再変換することで対応した。


var date = new Date($scope.transDate);
date.setHours(date.getHours() + 9);
$scope.transDate = date;


AngularJSのバージョンアップ時に再度確認すること。

0 件のコメント:

コメントを投稿