日期格式过滤器不工作角度js

时间:2016-11-24 11:34:43

标签: javascript angularjs angular-filters

我是棱角分明的新手。 我试图给出一些类似Nov-24-2016的日期格式,但它根本不起作用。 以下是我的代码。

{{ x.created | date:" MM-d-y" }}

我想要这种格式Nov-24-2016

x.created value = 2016-11-24 08:02:21

有什么建议吗? 谢谢

5 个答案:

答案 0 :(得分:2)

您可以创建自定义

.filter('datetime', function($filter){
    return function(input){
      if(input == null){ return ""; } 

      var _date = $filter('date')(new Date(input),'MM-dd-yyyy');         
      return _date.toUpperCase();

    };
});


{{ x.created | datetime }}

答案 1 :(得分:2)

查看文档: https://docs.angularjs.org/api/ng/filter/date

x.created必须是Date对象或自UTC时代以来毫秒的时间字符串。

因此要么为它创建一个手动过滤器,要么将日期字符串解析为Date对象。

答案 2 :(得分:1)

使用date管道x.created必须是日期对象或数字(自UTC纪元以来的毫秒数)或ISO字符串DatePipe

答案 3 :(得分:0)

{{ x.created | date: "MMM-d-y" }}呈现给Nov-24-2016

顺便说一下:2016-11-24 08:02:21似乎不是有效的ISO字符串https://www.w3.org/TR/NOTE-datetime。你可以检查一下。

答案 4 :(得分:0)

我有类似的问题。它经过2个步骤修复,将文档编码更改为没有BOM的utf-8,并手动重写时间数据。像这样 - 日期: 2013-12-02T17:57:28.556094Z