Задать вопрос
Madeas
@Madeas
UI / UX Designer, Frontend Developer

Как сравнить две даты на vuejs?

День добрый!
Подскажите, реально ли сравнить даты, если:

1. в data() {...} пока вывел так:
isTodayDate: new Date().toISOString().slice(0, 10) возвращает формат 2020-03-03
Все что смог...

2. в JSON'e формат даты - String
list: [
        {
          ...,
          ...,
          dateend: "31.05.2018"
          ...,
        },
        {
          ...,
          ...,
          dateend: "03.04.2021"
          ...,
        },
        {
          ...,
          ...,
          dateend: "31.03.2018"
          ...,
        },
        {
          ...,
          ...,
          dateend: "31.03.2018"
          ...,
        }
      ]


Нужно сравнить и сделать фильтр с условием, что дата в json файле меньше текущей.
  • Вопрос задан
  • 762 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Игра на Vue.js
    1 неделя
    Далее
  • OTUS
    Vue.js разработчик
    4 месяца
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Как превратить строку в дату:

const parseDate = str =>
  new Date(str.split('.').reverse().join('-'));

// или

const parseDate = str =>
  new Date(str.replace(/(\d+)\.(\d+)\.(\d+)/, '$3-$2-$1'));

// или

const parseDate = str =>
  (str = str.match(/\d+/g), new Date(str[2], ~-str[1], str[0]));

Отфильтрованный массив оформляем в виде вычисляемого свойства:

data: () => ({
  today: new Date().setHours(0, 0, 0, 0),
  ...
}),
computed: {
  filteredList() {
    return this.list.filter(n => parseDate(n.dateend) < this.today);
  },
  ...
},
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы