我的json响应如下所示:
[{"Id":"dab4580b-e24d-49f8-9fd5-2e968b10d3b5","Title":"MVVM-Sidekick 入精","CreatedOn":"\/Date(1390272893353)\/","IsChecked":false},{"Id":"66a0f134-e240-4cc4-96fa-ac3807853ca7","Title":"Windows Phone 开发入精","CreatedOn":"\/Date(1390018447080)\/","IsChecked":false}]
“ CreatedOn”日期是这种格式:’/ Date(1390272893353)/’
当我将此结果绑定到html表时,日期无法格式化:
<td>{{item.CreatedOn | date: 'yyyy-MM-dd HH:mm'}}</td>
仍然给我:
/日期(1390272893353)/
我不想在服务器端更改任何代码(不要修改json字符串),格式化此日期的最佳方法是什么?
一种选择是编写另一个过滤器并将其放入链中。例如:
app.filter("mydate", function() { var re = /\/Date\(([0-9]*)\)\//; return function(x) { var m = x.match(re); if( m ) return new Date(parseInt(m[1])); else return null; }; });
基本上,它使用正则表达式解析字符串并生成一个Date(如果格式与所示格式不同,则必须调整正则表达式)。
Date
用作:
<td>{{item.CreatedOn | mydate | date: 'yyyy-MM-dd HH:mm'}}</td>