我的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>仍然给我:
/Date(1390272893353)/
我不想改变服务器端的任何代码(不要修改json字符串),那么格式化这个日期的最佳方式是什么?
发布于 2014-03-16 09:50:19
一种选择是编写另一个过滤器并将其放入链中。例如:
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 (如果格式与所显示的格式不同,则必须调整正则表达式)。
将其用作:
<td>{{item.CreatedOn | mydate | date: 'yyyy-MM-dd HH:mm'}}</td>发布于 2014-09-15 20:20:51
实际上,我将来自@Charminbear和@Nikos的答案组合在这个过滤器中,这个过滤器工作得很好,没有正则表达式也很清楚:
myApp.filter("jsDate", function () {
return function (x) {
return new Date(parseInt(x.substr(6)));
};
});这样就可以编写
{{ $scope.item.CreatedOn | jsDate | date:"yyyy-MM-dd" }}发布于 2017-02-24 05:47:28
我知道我去派对要迟到了。但我想告诉我的是:-
<td>{{item.yourdatefield.slice(6,-2) | date:'dd-MMM-yyyy' }}</td>希望它能帮助像我这样懒惰的程序员。:)
https://stackoverflow.com/questions/22435212
复制相似问题