[英]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.