AngularJS:获取后缀为rd,th和st的日期

Inc*_*tor 16 javascript angularjs

如何在Angular Java脚本中格式化日期?

<p id="summaryHeader">Calendar of {{dt}}</p>
Run Code Online (Sandbox Code Playgroud)

我得到了价值 2014-06-05T12:38:42.744Z

我试过这个

<p id="summaryHeader">Calendar of {{dt|date:'MMMM dd'}}</p>
Run Code Online (Sandbox Code Playgroud)

这给了我

Calendar of June 05

我需要它Calendar of June 05th或7月2日等等..后方rd,th,st是我正在寻找的.

Anuglar Docs很好,但不指定此格式.

gur*_*uru 21

我想这就是你要找的东西 - http://www.michaelbromley.co.uk/blog/13/an-ordinal-date-filter-for-angularjs 一个使用逻辑的自定义过滤器

app.filter('dateSuffix', function($filter) {
  var suffixes = ["th", "st", "nd", "rd"];
  return function(input) {
    var dtfilter = $filter('date')(input, 'MMMM dd');
    var day = parseInt(dtfilter.slice(-2));
    var relevantDigits = (day < 30) ? day % 20 : day % 30;
    var suffix = (relevantDigits <= 3) ? suffixes[relevantDigits] : suffixes[0];
    return dtfilter+suffix;
  };
});
Run Code Online (Sandbox Code Playgroud)

和一个演示:http://plnkr.co/edit/HiyQ9uvxQL3FRoj7hKB8?p = preview


Nic*_*ale 5

我想将序数指示符作为上标,因此使用了以下内容:

<div>{{amount}}<sup ng-bind="amount | ordinal"></sup></div>
Run Code Online (Sandbox Code Playgroud)

使用过滤器:

app.filter('ordinal', function() {
return function(number){
    if (isNaN(number) || number < 1){
        return '';
    } else if (number % 100 == 11 || number % 100 == 12) {
        return 'th';
    } else {
        var lastDigit = number % 10;
        if (lastDigit === 1) {
            return 'st';
        } else if (lastDigit === 2) {
            return 'nd';
        } else if (lastDigit === 3) {
            return 'rd';
        } else if (lastDigit > 3) {
            return 'th';
        }
    }
}
});
Run Code Online (Sandbox Code Playgroud)

请注意,这会正确渲染 11 th、 12 th、 111 th、 1012 th,而不是 11 st