【问题标题】: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。

【问题讨论】:

  • 使用$filter服务...

标签: 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)
} 

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2021-09-29
    • 2012-11-03
    • 1970-01-01
    相关资源
    最近更新 更多