Javascript 如果日期类型为“0”,如何按日期对对象排序;16.11:20;?

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" }, {

我正在尝试按日期对数组中的对象进行排序。 有这样一种带有对象的数组,日期是以这种格式“14.9 15:11”写入的。日期是字符串。 如何对对象进行排序,使第一个对象的日期与当前对象的日期最接近

[
 {
  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对它进行了排序。谢谢你的关注(我的问题)当你说最近时,你是指之前最近、之后最近还是两个方向最近?