我正在使用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"
知道为什么这些过滤器尝试不起作用且日期仍然以这种格式出现?
答案 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)})。
这可以确保所有日期都是正确的日期对象。