如何使用JavaScript中的“MMMM Do YYYY,h:mm:ss a”对日期进行排序

时间:2018-01-20 08:38:41

标签: javascript jquery

按日期排序JavaScript对象数组(mm / DD / yyyy hh / mm / ss Am / Pm)

var array = [
  { id: 1, date: Mar 12 2017   10:00:00 AM }, 
  { id: 2 ,date: Mar 12 2017   08:00:00 PM },
  { id: 3, date: Mar 12 2017   05:00:00 AM },
  { id: 4, date: Mar 18 2017   09:00:00 AM }
];

Here is my logic:-
sortedPatients = PatientsListArray.sort((a, b) =>
            b.Date.split('/')
              .reverse()
              .join()
              .localeCompare(
                a.Date.split('/')
                  .reverse()
                  .join()
              )
          )

得到像id4 , id1 , id2 , id3

这样的输出

预期输出,例如id4, id2, id3, id1

1 个答案:

答案 0 :(得分:2)



const array = [
  {id: 1, date: 'Mar 12 2017   10:00:00 AM'},
  {id: 2, date: 'Mar 12 2017   08:00:00 PM'},
  {id: 3, date: 'Mar 12 2017   05:00:00 AM'},
  {id: 4, date: 'Mar 18 2017   09:00:00 AM'},
];

console.log(
  array.sort((a, b) => new Date(b.date) - new Date(a.date))
);




使用sort方法中的此回调函数,您将获得id4,id2,id1和id3的顺序。我不明白你为什么要获得订单id4,id2, id3和id1

如果您想要反转订单,只需交换ba的位置,即可(a, b) => new Date(a.date) - new Date(b.date)

如果您已经拥有Date个对象(就像您在代码中使用b.Datea.Date一样),您可以这样编写:

sortedPatients = PatientsListArray.sort((a, b) => b.Date - a.Date))