某些特定日期范围未在 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);
日期 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);