我有
calendar.administrations.where(user_id: @user.id).first
个日期/时间。 (" 8/28/15,下午2:38")我试图从最新到最旧的日期/时间订购它。什么是最简单最有效的方式?
我正在考虑进行
<%= calendar.administrations.where(user_id: @user.id).first.role %>
循环并检查array
是否在当前项之前或之后进行检查。但我确信有更好,更有效的方式。
如何对从最旧到最新的时间/日期数组进行排序? (如果你需要我的代码,我可以发布它。
答案 0 :(得分:3)
Array
有一个内置方法sort
,它允许您提供一个闭包来对其中的对象进行排序。假设您的变量名为dates
,您可以像这样对其中的NSDate
进行排序:
dates.sort { (a, b) -> Bool in
a.earlierDate(b) == a
}
sort
方法会一再要求您比较两个日期,询问您首先要订购哪个日期。您可以使用NSDate
的{{1}}方法来查找首先出现的日期。
注意:如果您的数组实际上由日期字符串而不是earlierDate
组成,我建议您先将它们转换为NSDate
。
答案 1 :(得分:0)
您可以使用此方法
NSArray *sortedArray;
sortedArray = [unsorted_array sortedArrayUsingComparator:^NSComparisonResult(NSDate a, NSDate b) {
return [a compare:b];
}];