effect_tw
@effect_tw

Неправильно получение данных, в зависимости от даты?

При получении данных , в зависимости от даты , данные выводятся неверно. Делаю таким образом.
Получение даты:
const date = new Date();
date.setDate(date.getDate());

Сам запрос: Мне нужно найти все данные , добавленные сегодня. Оно ничего не находит.
const tasks = await TaskModel.find({
        userId: `${req.user.id}`,
        time: { $eq: dates },
      }).exec();

Приходится переделывать костыльно: От даты отнимать единицу. И поиск делать "Больше либо равно".Так находит.... что звучит бредово. Но почему не работает с $eq ума не приложу..
Вот так работает костыльно:
const date = new Date();
date.setDate(date.getDate() - 1);

const tasks = await TaskModel.find({
        userId: `${req.user.id}`,
        time: { $gte: dates },
      }).exec();
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
date.setDate(date.getDate()); эта строчка не имеет смысла(ничего не делает).
Если ты хочешь срезать у даты время(а по сути поставить 0 часов 0 минут итд), то это деляется в явном виде: date.setHours(0, 0, 0, 0).
Если дата нужна в стандартном часовом поясе то используй setUTCDate, после чего вместо setHours - setUTCHours.

Ну и у тебя на сервере даты должны храниться без времени, иначе никакого eq, а только gte + lte.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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