Как я могу создать фильтр относительной даты / времени в Алголии (то есть "день назад", "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.