按日期排序并截断Angular中的日期字符串

时间:2014-03-28 16:59:03

标签: angularjs filtering

我有一个带有已发布字段的json文件,该字段以这种格式返回:

发布:" 2002-01-28"

我打算按日期(先前)排序显示它们,仅显示年份。我已经使用了truncate模块(在我的例子中,发行版:4),到目前为止它只显示了前4个字符,但我还没有成功使用orderby来正确排序。

任何指针?

此外,在某些项目中,已发布的字段会返回空白状态,任何快速显示“未知”的字段都会显示为空白。而不是一个空格?

谢谢!

<li ng-show="versions" ng-repeat="version in versions | filter: '!file' | orderBy: version.released">
  {{version.released | release:4}} - {{version.format}} - {{version.label}}
</li>

2 个答案:

答案 0 :(得分:1)

您可以通过{{version.released || 'unknown'}}显示未知。

如果您只想显示年份,请执行此操作{{ (version.released | date : date : 'YYYY' ) || 'unknown'}}

答案 1 :(得分:1)

这是我使用的日期格式过滤器。它需要一个日期并将其转换为您希望的任何格式,在您的情况下,&#39; yyyy&#39;。将原始日期标记绑定在模板中,然后按顺序排列&#39;应该工作正常。这就是我一直这样做的方式。哦,您可能不需要replace()函数...这是我上一个项目特有的。

.filter('DateFormat', function($filter){
    return function(text){
        if(text !== undefined){
            var tempdate = new Date(text.replace(/-/g,"/"));
            return $filter('date')(tempdate, "MMM. dd, yyyy");
        }
    }
})