2017-01-09 4 views
0

В моих хитах у меня есть поддержка, которая содержит добавлена ​​ .. и когда я пытаюсь сделать фильтр на дату, добавляется список общей даты. Как я могу сделать фильтр, который говорит .. 1 день назад, 2 дня назад, 1 неделя назад и т. Д. Затем отфильтруйте результаты.Как создать фильтр относительной даты/времени в Альголии (т. Е. «День назад», «2 дня назад», «3 дня назад»)?

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

Сценарий:

//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. 
+0

вам следует попробовать использовать lib как [moment.js] (http://momentjs.com). –

+1

Спасибо. BTW я нашел другое решение. и он должен добавить фильтрацию как числовой селектор. на основе нашего старого приложения нам нужен действительно определенный набор относительных дат/месяцев. – Johneric

ответ

0

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

здесь ограничения:

  • Использование относительного времени/даты фильтра.
  • Не показывать общие даты в образах.
  • Используйте раскрывающийся список.
 

    search.addWidget(
     instantsearch.widgets.numericSelector({ 
     container: '#added-menu', 
     attributeName: 'added', 
     templates: { 
      header: 'Added' 
     }, 
     operator: '>=', 
     options: [ 
      {label: 'Anytime', value: 0 }, 
      {label: 'Today', value: daysBefore(1) }, 
      {label: 'Within 3 Days', value: daysBefore(3)}, 
      {label: 'Within 1 week', value: daysBefore(7)}, 
      {label: 'Within 2 weeks', value: daysBefore(14)}, 
      {label: 'Within 1 Month', value: daysBefore(30)}, 
      {label: 'Within 3 Months', value: daysBefore(90)}, 
      {label: 'Within 6 Months', value: daysBefore(183)} 
     ] 
     }) 
    ); 

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