Javascript 扩展angularjs日期过滤器的日期格式
Angularjs提供了一个用于格式化日期的。如何以以下格式获取日期Javascript 扩展angularjs日期过滤器的日期格式,javascript,angularjs,date,Javascript,Angularjs,Date,Angularjs提供了一个用于格式化日期的。如何以以下格式获取日期 dd(st || nd || th) mm yyyy 1st May 2014 1<sup>st</sup> May 2014 dd(st|nd|th)mm yyyy 2014年5月1日 2014年5月1日 我应该创建一个新的自定义过滤器,还是可以通过扩展日期过滤器的格式。最好的方法是什么?正确,您可以创建自己的自定义过滤器,如: angular.module('', []) .filter('
dd(st || nd || th) mm yyyy
1st May 2014
1<sup>st</sup> May 2014
dd(st|nd|th)mm yyyy
2014年5月1日
2014年5月1日
我应该创建一个新的自定义过滤器,还是可以通过扩展日期过滤器的格式。最好的方法是什么?正确,您可以创建自己的自定义过滤器,如:
angular.module('', [])
.filter('someFilter', function() {
return function(input,param1) {
...
在html中,您需要做的就是将其用作任何其他筛选器,如{{{somevalue | someFilter}}
回到日期问题,您可能知道的第二件事是,您可以通过注入$filter
服务直接从代码调用过滤器;这将允许您从过滤器中获取任何值:
var filteredDate = $filter('date')(new Date(input), 'dd MMMM');
总而言之,我认为这将是我推荐的实现定制过滤器的方法
angular.module('', [])
.filter('someFilter', function($filter) {
return function(input) {
var filteredYearMonth = $filter('date')(new Date(input), 'MMMM yyyy');
var filteredDay = (new Date(input)).getDay();
var arr = ['st', 'nd', 'rd']
var myDate arr[filteredDay] || "th" + filteredYearMonth;
return myDate
...
编写自定义过滤器以实现此目的
filter('ordinal', function() {
return function(input) {
var s=["th","st","nd","rd"],
v=input%100;
return input+(s[(v-20)%10]||s[v]||s[0]);
}
});
在这里检查工作的小提琴我也有同样的要求,在我降落到这里之间,所以我在这里做了一些实验。 退房
var myApp=angular.module('myApp',[]).filter('ordinal',function()){
返回函数(输入){
var日期=新日期(输入);
var dayOfMonth=date.getDate();
var后缀=月日;
变量后缀=[“th”、“st”、“nd”、“rd”];
var相关数字=(月日<30)?月日%20:月日%30;
var suf=(relevantDigits为了完成您的任务,您需要一个过滤器,在给定数字时提供序数,并且只提供序数本身。(完整免责声明:我自己的项目)就是这样做的
按照自述文件将筛选器安装到您的项目中,简短版本如下:
bower安装--保存所有顺序
将以下行添加到.html文件中
最后添加模块作为依赖项
angular.module('demo',['ordinal']))
设置完成后,您可以通过将顺序过滤器和日期过滤器链接在一起来使用它们
<p>{{myDateObject | date:'dd'}}<sup>{{myDateObject | date:'dd' | ordinalOnly}}</sup> {{myDateObject | date :'MMMM yyyy'}}</p>
{{myDateObject | date:'dd'}{{myDateObject | date:'dd'| ordinalOnly}{{myDateObject | date:'MMMM yyyyy'}
您将得到您想要的结果:
2015年5月1日
<p>{{myDateObject | date:'dd'}}<sup>{{myDateObject | date:'dd' | ordinalOnly}}</sup> {{myDateObject | date :'MMMM yyyy'}}</p>
<p>1<sup>st</sup> May 2015</p>