[英]Angular Display Date as is Without Time Zone Conversion
我有一個對象,其日期字段為"2015-01-31T00:00:00.000Z"
我想在我的應用中顯示1/31/15。 問題在於它顯示的是我所在時區的日期,而不是UTC,因此實際上顯示的是1/30/15。
我四處張望,找不到不帶Angular 1.3或Moment即可簡單顯示日期的干凈解決方案。
我決定在SO職位的幫助下創建自己的過濾器。
.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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.