【问题标题】:Order By Date and truncate date strings in Angular按日期排序并在 Angular 中截断日期字符串
【发布时间】:2014-03-29 02:01:31
【问题描述】:

我有一个带有已发布字段的 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>

【问题讨论】:

    标签: angularjs filtering


    【解决方案1】:

    这是我使用的日期格式过滤器。它需要一个日期并将其转换为您希望的任何格式,在您的情况下为“yyyy”。在您的模板中绑定原始日期戳,然后“orderBy”应该可以正常工作。这就是我一直这样做的方式。哦,你可能不想要我上一个项目特有的 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");
            }
        }
    })
    

    【讨论】:

    • 就我而言,我应该声明 (tempdate, "yyyy - mm - dd");??
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多