繁体   English   中英

如何在Angular中按日期排序

[英]How to sort by dates in Angular

我想在AngularJs中的ng-repeat中对列进行排序。

我有这样的事情:

<th class="cl_sort_init" ng-click="predicate='EstimatedCloseDate';
    reverse=!reverse" ng-class="{'cl_sort_desc': 
predicate=='EstimatedCloseDate'&&reverse==true, 'cl_sort_asc': 
predicate=='EstimatedCloseDate'&&reverse==false}">Close Date</th>

但是EstimatedCloseDate是一个字符串。 因此,它无法正常工作。 我如何使其仅作为此列的日期。 其他列是字符串,它们可以正常工作。

任何想法和建议!

根据日期字符串的格式,您也许可以

(new Date(EstimatedCloseDate))

这将解析日期字符串,然后将其转换为日期对象,这将对排序起到很好的作用。如果这样做不起作用,则必须编写自己的日期解析器,最终将日期转换为int或Date对象

在谓词中,您应该可以将字符串转换为日期时间。 不需要其他转换。 有关字符串到日期的转换,请参见此处: 将字符串转换为js中的日期和格式细节。

如果您的日期格式不正常,请查看诸如datejs之类的库以寻求帮助。

但是这里有一些代码片段将几个日期字符串转换为日期。 请注意,上一次转换失败。

var dtString = "2010-12-25";
var dt = new Date(dtString);
console.log(dtString + " = " + dt);

dtString = "12/25/2010";
dt = new Date(dtString);
console.log(dtString + " = " + dt);

dtString = "25/12/2010";
dt = new Date(dtString);
console.log(dtString + " = " + dt);

输出:

2010-12-25 = Fri Dec 24 2010 18:00:00 GMT-0600 (CST)
12/25/2010 = Sat Dec 25 2010 00:00:00 GMT-0600 (CST)
25/12/2010 = Invalid Date

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM