【问题标题】:Angular Display Date as is Without Time Zone Conversion没有时区转换的角度显示日期
【发布时间】:2015-01-13 18:58:47
【问题描述】:
我有一个对象,其日期字段为 "2015-01-31T00:00:00.000Z" 我想在我的应用程序中显示 1/31/15。问题是它在我的时区显示我的日期,而不是 UTC,所以它实际上显示的是 1/30/15。
我环顾四周,找不到一个简单的解决方案来简单地显示日期而不引入 Angular 1.3 或 Moment。
【问题讨论】:
标签:
javascript
angularjs
date
【解决方案1】:
我决定在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)
}