这是我的json
:
,我想按日期和时间对此json
进行排序。我在下面的代码上写了,但是不起作用。
this.newsArray.sort((a, b) =>
new Date(b.time).getTime() - new Date(a.time).getTime());
newsArray
包含4个项目,如图所示。
我该如何解决此问题?
答案 0 :(得分:3)
您创建的Date对象仅包含导致无效日期的时间。使用日期和时间创建日期对象:
const newsArray = [
{date: '2018-11-17', time: '18:35:00'},
{date: '2018-11-17', time: '17:35:00'},
{date: '2018-11-17', time: '16:20:00'},
{date: '2018-11-17', time: '20:39:00'},
];
const res = newsArray.sort((a, b) =>
new Date(b.date + ' ' + b.time).getTime() - new Date(a.date + ' ' + a.time).getTime());
console.log(res);
答案 1 :(得分:0)
您正在尝试从类似于“ 12:00:00”的字符串构造日期,这是无效的日期。
尝试将.date和.time结合使用,使Date可以解释:
this.newsArray.sort((a, b) =>
new Date(b.date + 'T' + b.time).getTime() - new Date(a.date + 'T' + a.time).getTime());