首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自json对象的Angular.js格式数据

来自json对象的Angular.js格式数据
EN

Stack Overflow用户
提问于 2014-03-16 09:32:31
回答 7查看 50.9K关注 0票数 23

我的json回答如下:

代码语言:javascript
复制
[{"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表时,无法格式化日期:

代码语言:javascript
复制
<td>{{item.CreatedOn | date: 'yyyy-MM-dd HH:mm'}}</td>

仍然给我:

/Date(1390272893353)/

我不想改变服务器端的任何代码(不要修改json字符串),那么格式化这个日期的最佳方式是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-03-16 09:50:19

一种选择是编写另一个过滤器并将其放入链中。例如:

代码语言:javascript
复制
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 (如果格式与所显示的格式不同,则必须调整正则表达式)。

将其用作:

代码语言:javascript
复制
<td>{{item.CreatedOn | mydate | date: 'yyyy-MM-dd HH:mm'}}</td>
票数 24
EN

Stack Overflow用户

发布于 2014-09-15 20:20:51

实际上,我将来自@Charminbear和@Nikos的答案组合在这个过滤器中,这个过滤器工作得很好,没有正则表达式也很清楚:

代码语言:javascript
复制
myApp.filter("jsDate", function () {
    return function (x) {
        return new Date(parseInt(x.substr(6)));
    };
});

这样就可以编写

代码语言:javascript
复制
{{ $scope.item.CreatedOn | jsDate | date:"yyyy-MM-dd" }}
票数 30
EN

Stack Overflow用户

发布于 2017-02-24 05:47:28

我知道我去派对要迟到了。但我想告诉我的是:-

代码语言:javascript
复制
<td>{{item.yourdatefield.slice(6,-2) | date:'dd-MMM-yyyy' }}</td>

希望它能帮助像我这样懒惰的程序员。:)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22435212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档