簡體   English   中英

角度顯示日期不進行時區轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM