Сортировка массива по дате и времени одновременно? - PullRequest
0 голосов
/ 12 февраля 2019

Я создаю приложение-график, поэтому мне нужно отсортировать элементы по дате и времени одновременно.Как вы видите в примере, я могу фильтровать только часы и минуты, и это работает, но мне нужно отфильтровать даты тоже

Я храню дату в базе данных, например, 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
      );
    });

enter image description here like you see on image it sorts array by hours and minuts, but its need to be sorted by dates first, that with hours and minuts

, как вы видитена изображении сортирует массив по часам и минутам, но сначала нужно отсортировать по датам, а не по часам и минутам ...

1 Ответ

0 голосов
/ 12 февраля 2019

Если данные содержат ключ / значение для даты, вы можете просто заменить функцию сортировки следующим образом:

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 объекты могут быть созданы из строк даты вformat YYYY-MM-DD.

Метод .valueOf() возвращает количество миллисекунд от времени UTC - см. MDN's объяснение этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...