Javascript 如果日期类型为“0”,如何按日期对对象排序;16.11:20;?
我正在尝试按日期对数组中的对象进行排序。 有这样一种带有对象的数组,日期是以这种格式“14.9 15:11”写入的。日期是字符串。 如何对对象进行排序,使第一个对象的日期与当前对象的日期最接近Javascript 如果日期类型为“0”,如何按日期对对象排序;16.11:20;?,javascript,arrays,sorting,datetime,Javascript,Arrays,Sorting,Datetime,我正在尝试按日期对数组中的对象进行排序。 有这样一种带有对象的数组,日期是以这种格式“14.9 15:11”写入的。日期是字符串。 如何对对象进行排序,使第一个对象的日期与当前对象的日期最接近 [ { date: "16.11 11:20", name: "Name Surname" }, { date: "15.11 19:59", name: "Name Surname" }, {
[
{
date: "16.11 11:20",
name: "Name Surname"
},
{
date: "15.11 19:59",
name: "Name Surname"
},
{
date: "17.11 17:24",
name: "Name Surname"
},
{
date: "14.9 15:11",
name: "Name Surname"
}
]
在我处理日期的情况下,我更喜欢使用
moment.js
,因为它让一切变得简单多了
然而,如果您正在寻找一个普通的函数,您可以创建自己的自定义排序函数作为排序的回调函数
const yourArray = [...];
yourArray.sort((next, prev) => {
if (condition1)
return 1;
if (condition2)
return -1;
return 0;
})
然后,您可以根据所选的regexp(取决于日期格式)比较取代
condition1
和condition2
的字符串。但是,同样,如果您使用矩,这对您来说会容易得多,因为您可以使用它们内置的ìsBefore()
和ìsAfter()
比较函数,而不必编写regexp。您知道格式是什么吗?例如,第一个日期16.11 11:20
我假设16.11
表示第11个月的第16天,11:20
是以小时和分钟为单位的时间。这个假设正确吗?新年一开始会发生什么?您希望如何知道距离1.1
最近的日期是31.12
,而不是1.3
?是的,您理解正确。我已经用localeCompare对它进行了排序。谢谢你的关注(我的问题)当你说最近时,你是指之前最近、之后最近还是两个方向最近?