Как я могу создать фильтр относительной даты / времени в Алголии (то есть "день назад", "2 дня назад", "3 дня назад")?

В моих хитах у меня есть реквизит, который содержит добавленный.. и когда я пытаюсь сделать фильтр по добавленной дате, появляется список общих дат. Как я могу сделать фильтр, который говорит: 1 день назад, 2 дня назад, 1 неделю назад и т. Д., А затем отфильтровать результаты.

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

Автор сценария:

//Algolia Widget for Date Added.
search.addWidget(
  instantsearch.widgets.menu({
    container: '#added-menu',
    attributeName: 'added',
    limit: 10,
    templates: {
      header: 'Added'
    }
  })
);

//Date added will display the whole list of common dates. 

1 ответ

Обновление: мне удалось найти решение для обработки относительной даты, используя фильтр numericSelector, который можно найти в документации по algolia. Ситуация такова, мне просто нужно скопировать относительные даты, которые мы имеем в нашем старом приложении.

Вот ограничения:

  • Используйте относительный фильтр времени / даты.
  • Не отображать общие даты в хитах.
  • Используйте выпадающий список.
    search.addWidget (instantsearch.widgets.numericSelector ({
       контейнер: "# добавленное меню",
        attributeName: добавлено
        шаблоны: {
          заголовок: "Добавлено"
        },
        оператор: '>=',
        опции: [
          {label: 'Anytime', значение: 0 },
          {label: 'Today', значение: daysBefore(1) },
          {label: 'В течение 3 дней', значение: daysBefore(3)},
          {label: 'В течение 1 недели', значение: daysBefore(7)},
          {label: 'В течение 2 недель', значение: daysBefore(14)},
          {label: 'В течение 1 месяца', значение: daysBefore(30)},
          {label: 'В течение 3 месяцев', значение: daysBefore(90)},
          {label: 'В течение 6 месяцев', значение: daysBefore (183)}
        ]
      }));

daysBefore () - это функция, которая возвращает текущую дату минус количество дней, а затем преобразуется в метку времени linux.

Другие вопросы по тегам