如何在JavaScript中使用'MMMM Do YYYY,h:mm:ss a'对日期进行排序[重复]

Posted

技术标签:

【中文标题】如何在JavaScript中使用\'MMMM Do YYYY,h:mm:ss a\'对日期进行排序[重复]【英文标题】:How to sort date with 'MMMM Do YYYY, h:mm:ss a' in JavaScript [duplicate]如何在JavaScript中使用'MMMM Do YYYY,h:mm:ss a'对日期进行排序[重复] 【发布时间】:2018-06-29 11:07:10 【问题描述】:

按日期排序 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】:

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))

【讨论】:

感谢您的回复,它对我有用

以上是关于如何在JavaScript中使用'MMMM Do YYYY,h:mm:ss a'对日期进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

经纬度转换ddmm.mmmm

NSDateFromatter 没有给出正确的 MMMM 值

如何控制DateFormat返回的月份和日期名称的大小写?

ActionScript 3 毫秒到mm:ss:mmmm

比较 SQL Server CE 中的两个 Datetime 类型(“MMMM-yyyy”)

使用 JavaScript/jQuery 调用 do_action