我有以下格式的日期
[
["First Name", "10 Sep. 2017 2:00 PM"],
["First Name", "10 Sep. 2017 2:00 PM"],
["First Name", "10 Sep. 2017 1:00 PM"],
["First Name", "10 Sep. 2017 8:00 AM"],
["First Name", "9 Sep. 2017 2:00 PM"],
["First Name", "9 Sep. 2017 2:00 PM"],
["First Name", "9 Sep. 2017 1:00 PM"],
["First Name", "9 Sep. 2017 8:00 AM"]
]
并希望将其作为输出:
[
["First Name", "10 Sep. 2017 8:00 AM"],
["First Name", "10 Sep. 2017 1:00 PM"],
["First Name", "10 Sep. 2017 2:00 PM"],
["First Name", "10 Sep. 2017 2:00 PM"],
["First Name", "9 Sep. 2017 8:00 AM"],
["First Name", "9 Sep. 2017 1:00 PM"],
["First Name", "9 Sep. 2017 2:00 PM"],
["First Name", "9 Sep. 2017 2:00 PM"]
]
请注意日期的顺序,但时间是按时间顺序更改的。换句话说,时代倒转了。我怎样才能做到这一点?这是我的代码,在此之前,我必须生成第一个示例数组
function sortTable(data) {
return sortTableHelper(data);
function sortTableHelper(data) {
data = data.sort((elem1, elem2) => {
var date1 = moment(elem1[1], 'D MMM YYYY h:m A')
, date2 = moment(elem2[1], 'D MMM YYYY h:m A');
if (date1.isAfter(date2)) return 1;
return -1;
});
return data;
}
}
如何修改必须按时间顺序排列的现有排序代码?
最佳答案
反转返回码,以便您的结果递增而不是递减:
if (date2.isAfter(date1)) return 1;
if (date1.isAfter(date2)) return -1;
return 0;
注意我更改了代码,以使当项目相等时返回0。