SR Office

ブログ
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のバージョンアップ時に再度確認すること。