同时按日期和时间对数组进行排序?

Sorting array by date and time in same time?

我正在构建日程表应用程序,因此我需要同时按日期和时间对项目进行排序。就像您在示例中看到的那样,我只能过滤小时和分钟,这很有效,但我也需要过滤日期

我将日期存储在数据库中,例如 YYYY-MM-DD,并按小时和分钟存储时间,例如字符串:小时:“08”,分钟:“25”。

 this.ord3ref.on("child_added", data => {
      this.ord3.push({
        key: data.key,
        data: data.val()
      });
      this.ord3.sort(
        (a, b) => a.data.hours- b.data.hours || a.data.minuts- b.data.minuts
      );
    });

就像你在图片上看到的那样,它按小时和分钟对数组进行排序,但它需要先按日期排序,而不是按小时和分钟排序...

如果数据包含 key/value 日期,那么您应该可以将排序函数替换为:

this.ord3.sort(
    (a, b) => {
        var dateA = new Date(a.data.date).valueOf();
        var dateB = new Date(b.data.date).valueOf();
        return a.data.hours - b.data.hours || a.data.minuts - b.data.minuts || dateA - dateB;
    }
);

javascript Date 对象可以从格式为 YYYY-MM-DD.

的日期字符串中创建

.valueOf() 方法 returns 距 UTC 时间的毫秒数 - 请参阅 MDN's 解释。