Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

vue date filter component

new Vue({
  el: '#app',
  data: {
    selectedType: '',
    startDate:null,
    endDate:null,
    items: [
      {
        name: 'Nolan',
        type: 'mercedes',
        year: '2020',
        country: 'england',
        date: '08/01/2020'
      },
      {
        name: 'Edgar',
        type: 'bmw',
        year: '2020',
        country:'belgium',
        date: '08/11/2020'
      },
      {
        name: 'John',
        type: 'bmw',
        year: '2019',
        country: 'england',
        date: '08/21/2020'
      },
      {
        name: 'Axel',
        type: 'mercedes',
        year: '2020',
        country: 'england',
        date: '08/01/2020'
      }
    ]
  },
  computed: {
    filterItem() {
      let filterType = this.selectedType;
      let startDate = this.localizeDate(this.startDate);
      let endDate = this.localizeDate(this.endDate);
      
      const itemsByType = filterType ? this.items.filter(item => item.type === filterType) : this.items
      return itemsByType
        .filter(item => {
          const itemDate = new Date(item.date)
          if (startDate && endDate) {
            return startDate <= itemDate && itemDate <= endDate;
          }
          if (startDate && !endDate) {
            return startDate <= itemDate;
          }
          if (!startDate && endDate) {
            return itemDate <= endDate;
          }
          return true;
        })
    }
  },
  methods: {
    localizeDate(date) {
      // Date picker uses ISO format (yyyy-mm-dd), which is UTC. The data
      // contains locale specific date strings (mm/dd/yyyy), which `Date`
      // parses with local time-zone offset instead of UTC. Normalize the
      // ISO date so we're comparing local times.
      if (!date || !date.includes('-')) return date
      const [yyyy, mm, dd] = date.split('-')
      return new Date(`${mm}/${dd}/${yyyy}`)
    },
    formatDate(date) {
      return new Intl.DateTimeFormat('en-US', { dateStyle: 'long' }).format(new Date(date))
    }
  }
})
Comment

vuejs filter array by dates

<ul id="sortbydate">
  <li v-for="(item, index) in items" style="list-style:none">
    {{ index }} - {{ item.date }}
  </li>
</ul>
Comment

PREVIOUS NEXT
Code Example
Javascript :: how to cast in javascript 
Javascript :: javascript add items to array 
Javascript :: regex js 
Javascript :: javascript last array item 
Javascript :: js .flat 
Javascript :: javascript string() function 
Javascript :: login with facebook in react 
Javascript :: animate change of class angular 
Javascript :: react select error handle 
Javascript :: building a linked list javascript 
Javascript :: reverse string in javascript 
Javascript :: javascript reflection 
Javascript :: search an array with regex javascript indexOf 
Javascript :: strict mode 
Javascript :: save file javascript 
Javascript :: Javascript Event Loop 
Javascript :: for loop -2 js 
Javascript :: alpine js open outside div 
Javascript :: how to append data to a form data in javascript 
Javascript :: image upload using jquery ajax 
Javascript :: loop react components 
Javascript :: get node degree networkx 
Javascript :: setCenter: not a LatLng or LatLngLiteral with finite coordinates: in property lat: not a number 
Javascript :: input set variable angular 
Javascript :: add word in string in javascript 
Javascript :: javascript heap out of memory error 
Javascript :: append string js 
Javascript :: shuffle array in javascript 
Javascript :: add object in array state react 
Javascript :: d3 script 
ADD CONTENT
Topic
Content
Source link
Name
2+9 =