【问题标题】:Angular UI Grid date not formatting properlyAngular UI Grid 日期格式不正确
【发布时间】:2016-04-03 20:29:53
【问题描述】:

我正在使用 Angular 的 UI Grid 来显示许多列,但我无法正确格式化日期列。

显示为/Date(1451346632162-0000)/

我试图在我的 gridOptions 中过滤它,但没有运气:

// Removed Unrelated Column Defs

$scope.gridOptions.columnDefs = [
    { name: 'Date', field:'DateAdded', 
      /* First filter attempt */ cellTemplate: "<div>{{COL_FIELD | date:'dd-MM-yyyy' }}</div>", 
      /* Second Filter Attempt */ cellFilter:"date:'dd-MM-yyyy'"
    }

我尝试了我在文档中找到的这些变体,但没有运气 - cellFilter: "date"cellFilter: "longDate"

知道为什么这些过滤器尝试不起作用并且日期仍然以这种格式显示吗?

【问题讨论】:

    标签: javascript jquery angularjs filter angular-ui-grid


    【解决方案1】:

    我无法弄清楚是什么阻止了常规过滤处理 JSON 日期字段,但这是我同时使用的解决方法(以防有人遇到类似问题):

    function formatDates(data) {
            for (var i = 0; i < data.length; i++) {
                var currentValue = data[i].DateAdded
                var dateString = currentValue.substr(6);
                var currentTime = new Date(parseInt(dateString));
                var month = currentTime.getMonth() + 1;
                var day = currentTime.getDate();
                var year = currentTime.getFullYear();
                var date = month + "/" + day + "/" + year;
                data[i].DateAdded = date;
            }
    }
    

    如果有人知道是什么阻止了常规过滤工作,请发布。谢谢。

    【讨论】:

      【解决方案2】:

      确保您实际使用的是 Date 对象。如果您从数据库接收数据,它可能不是日期。在客户端查询数据库时,可能需要如下操作:data.map(function(datum){ datum.DateAdded = new Date(datum.DateAdded) })。

      这确保所有日期都是正确的日期对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 2020-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多