2017-01-09 69 views
0

在我的點擊中,我有一個包含的道具添加了 ..當我嘗試在添加日期時添加一個過濾器時,會出現常用日期列表。我如何製作過濾器,說.. 1天前,2天前,1周前等..然後篩選結果。如何在Algolia中創建相對日期/時間過濾器(即「一天前」,「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

你應該嘗試使用類似[moment.js](http://momentjs.com)的庫。 –

+1

謝謝。順便說一句,我發現另一種解決方案它是像數字選擇器一樣添加過濾器。基於我們的舊應用程序,我們實際上需要一組特定的相對日期/月份。 – Johneric

回答

0

更新:我能找到解決方案來處理相關日期,它是由algolia文檔中找到名爲numericSelector使用過濾器。情況是,我只需要複製我們在舊App中的相對日期。

這裏的約束:

  • 使用相對時間/日期過濾器。
  • 不要在匹配中顯示常用日期。
  • 使用下拉菜單。
 

    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)} 
     ] 
     }) 
    ); 

剩餘天數() 是返回當前日期減去 的天數,然後轉換爲一個Linux時間戳的功能。