如何按日期对JSON排序?

时间:2018-11-17 19:34:23

标签: javascript json angular typescript

这是我的json

enter image description here

,我想按日期和时间对此json进行排序。我在下面的代码上写了,但是不起作用。

this.newsArray.sort((a, b) =>
          new Date(b.time).getTime() - new Date(a.time).getTime());

newsArray包含4个项目,如图所示。

我该如何解决此问题?

2 个答案:

答案 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());
相关问题