我的对象的日期字段为"2015-01-31T00:00:00.000Z"
我希望在我的应用中显示1/31/15。问题是它在我的时区显示我的日期,而不是UTC,因此实际上显示的是1/30/15。
我四处寻找并且无法找到一个干净的解决方案,只需显示日期而无需引入Angular 1.3或Moment。
答案 0 :(得分:0)
我决定使用SO post的一些帮助创建我自己的过滤器。
.filter('utcDate', function ($filter) {
return function (theDate) {
var dateFilter = $filter('date');
originalDate = new Date(theDate);
currentDate = new Date();
utcDate = millisToUTCDate(currentDate);
millisecondsToUtc = utcDate - currentDate;
originalDate.setHours(originalDate.getHours() + toHours(millisecondsToUtc))
return dateFilter(originalDate, 'shortDate');
};
});
function toUTCDate(date) {
var _utc = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
return _utc;
};
function millisToUTCDate(millis) {
return toUTCDate(new Date(millis));
};
function toHours(milliseconds) {
return Math.round(milliseconds / 1000 / 60/ 60)
}