我想用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