我想用js对一个对象数组进行排序。这是我实施的。在数组中排序日期字符串
var employees = []
employees[0] = {
retiredate: "01/12/2014"
}
employees[1] = {
retiredate: "29/01/2015"
}
employees[2] = {
retiredate: "05/12/2014"
}
employees[3] = {
retiredate: "08/12/2014"
}
employees[4] = {
retiredate: "11/12/2014"
}
employees[5] = {
retiredate: "14/01/2015"
}
employees[6] = {
retiredate: "03/12/2014"
}
employees[7] = {
retiredate: "16/01/2015"
}
employees[8] = {
retiredate: "19/01/2015"
}
employees[9] = {
retiredate: "22/01/2015"
}
employees[10] = {
retiredate: "28/01/2015"
}
employees[11] = {
retiredate: "23/01/2015"
}
employees[12] = {
retiredate: "15/01/2015"
}
//console.log(periodesSorted);
console.log("START ... ")
employees.sort(function(a, b) {
var dateA = new Date(a.retiredate),
dateB = new Date(b.retiredate)
return dateA - dateB //sort by date ascending
})
for (ind2 = 0; ind2 < employees.length; ind2++) {
console.log(employees[ind2].retiredate)
}
console.log("End ... ")
在firefox中,退休人员数组排序良好。
在Chrome中,我有以下结果
01/12/2014
15/01/2015
05/12/2014
08/12/2014
11/12/2014
14/01/2015
29/01/2015
16/01/2015
19/01/2015
22/01/2015
28/01/2015
23/01/2015
03/12/2014
结果进行排序。代码中哪里出错了? 任何人都可以提出一个解决这个问题吗?
问候
不能产生从DD/MM/YYYY格式的字符串为有效日期; '03/12/2014'将导致3月12日,'23/01/2015'无效。使用mm/dd/yyyy格式。 –
你可以通过将日期转换为一个整数来表示日期,该整数表示日期在1.1.1970和实际日期之间 - 然后让一个排序算法完成剩余的 - 然后将它们转换回 – Ba5t14n