如何在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。
如果你想要一个相反的顺序,只需交换b
和a
的位置,这样你就有(a, b) => new Date(a.date) - new Date(b.date)
。
如果您已经有Date
对象(看起来就像您在代码中使用了b.Date
和a.Date
),您可以编写如下内容:
sortedPatients = PatientsListArray.sort((a, b) => b.Date - a.Date))
【讨论】:
感谢您的回复,它对我有用以上是关于如何在JavaScript中使用'MMMM Do YYYY,h:mm:ss a'对日期进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章
NSDateFromatter 没有给出正确的 MMMM 值