某些特定日期范围未在 Ionic typeScript 中排序

Some specifice range of date not sorting in Ionic typeScript

日期 b/w 2020 年 4 月 26 日至 2020 年 4 月 30 日排序不正确很奇怪啊好吧..

1) 我有一个类似

的数组
[
  {
    "dateAndTime": "05/05/2020 09:00:00"
  },
  {
    "dateAndTime": "26/04/2020 09:00:00"
  },
  {
    "dateAndTime": "25/05/2020 09:00:00"
  }
]

2) 分类码

         this.myArray.sort((a: MyDateClass ,b: MyDateClass) => (b.dateAndTime <= a.dateAndTime ? -1 : 1) );

3) 导出 class

export class MyDateClass {
 public dateAndTime: Date;
}

4) 预期输出

25/05/2020 09:00:00
05/05/2020 09:00:00
26/04/2020 09:00:00

5) 获取输出

26/04/2020 09:00:00
05/05/2020 09:00:00
05/05/2020 09:00:00

一些额外的情况,如果我包括数组日期 28,29,26,27,30 四月,它会像 26,27,28,29 一样正确排序,30

特定日期范围有什么问题 b/w 4 月 26 日至 30 日?

注意: 这是 Ionic 3,此问题已在 Safari、Firefox、Chrome

中测试

正在更新我也尝试在下面提到可能的解决方案,但最近的时间没有排序。

 let data=[ { "dateAndTime": "05/04/2020 09:00:00" }, { "dateAndTime": "05/04/2020 09:10:00" }, { "dateAndTime": "05/04/2020 09:09:22" },{ "dateAndTime": "05/05/2020 09:00:00" }, { "dateAndTime": "05/05/2020 09:09:22" }];
let result =  data.sort((a,b) => {
  let aa = new Date(a.dateAndTime.slice(0,10).split('/').reverse().join('/'));
  let bb = new Date(b.dateAndTime.slice(0,10).split('/').reverse().join('/'));
  return (bb <= aa ? -1 : 1);
  // return (aa <= bb ? 1 : -1);
});
console.log('Sorted___', result);

输出

0: Object { dateAndTime: "05/05/2020 09:00:00" }

1: Object { dateAndTime: "05/05/2020 09:09:22" } //This will be come at place of object 0:first

2: Object { dateAndTime: "05/04/2020 09:00:00" }

3: Object { dateAndTime: "05/04/2020 09:10:00" }  // here this will be come at place of object 2:

4: Object { dateAndTime: "05/04/2020 09:09:22" }

似乎是因为日期无效

var data=[{ "dateAndTime": "05/04/2020 09:00:00" },{ "dateAndTime": "05/04/2020 09:10:00" },{ "dateAndTime": "05/04/2020 09:09:22" }, { "dateAndTime": "05/05/2020 09:00:00" }, { "dateAndTime": "05/05/2020 09:09:22" }];

result = data.sort((a,b)=>{
  aa = new Date(a.dateAndTime.slice(0,10).split('/').reverse().join('/') + a.dateAndTime.slice(10));
  bb = new Date(b.dateAndTime.slice(0,10).split('/').reverse().join('/') + b.dateAndTime.slice(10));
  return bb - aa;
});

console.log(result);