角度UI网格日期未正确格式化

时间:2015-12-29 22:04:01

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

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

它显示为/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"

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

2 个答案:

答案 0 :(得分:0)

我无法弄清楚是什么阻止了常规过滤在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;
        }
}

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

答案 1 :(得分:0)

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

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