@testertoster

Как сравнить дату с датой из объекта?

У меня есть небольшой объект, который содержит в себе поле Date. Я создал переменную let date = new Date('2011-10-10');

Подскажите, как мне их сравнить и вывести в консоль true если равны и false если нет. Всем спасибо))))

{
   "Number": "123489",
   "Name": "VISA",
   "Date": "30-02-2011"
 }

  for (card of json.CardInfo) {

    date = new Date('02-10-2005');

   if(card.Date < date) {
    console.log('true');
  } else{
    console.log('false');
  }
}
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Дату в объекте нужно распарсить в объект Date
Сами даты приводятся операторами сравнения к числу (unix timestamp в милисекундах) и вполне себе сравниваются:
const date = new Date('02-10-2005'); // это лучше вынести за цикл, что бы не делать много раз одно и то же
for (card of json.CardInfo) {
   if(new Date(card.Date) < date) {
    console.log('true');
  } else{
    console.log('false');
  }
}

P.S. вообще конструкций вида if(...) { true } else { false } лучше избегать
for (card of json.CardInfo) {
    console.log(String(new Date(card.Date) < date));
}
этот пример отработает абсолютно аналогично предыдущему, но читать кода тут меньше
Ответ написан
@dimoff66
Кратко о себе: Я есть
const compare = (dateStr, date) => 
  Number(dateStr.split('-').reverse().join('')) < 
    date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate()

console.log('22-02-2010', new Date('2010-02-25')) // true 
console.log('22-02-2010', new Date('2010-02-22')) // false


или в вашем случае

const date = new Date('2005-10-02')
json.CardInfo.forEach(({Date: dateStr}) => compare(dateStr, date))
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы