How to Sort a JavaScript Array by ISO 8601 Date?

Sometimes, we want to sort a JavaScript array by ISO 8601 date.

In this article, we’ll look at how to sort a JavaScript array by ISO 8601 date.

Sort a JavaScript Array by ISO 8601 Date

To sort a JavaScript array by ISO 8601 date, we can use the JavaScript array’s sort method.

For instance, we can write:

const arr = [{
    name: 'oldest',
    date: '2001-01-17T08:00:00Z'
  },
  {
    name: 'newest',
    date: '2011-01-28T08:00:00Z'
  },
  {
    name: 'old',
    date: '2009-11-25T08:00:00Z'
  }
];

const sorted = arr.sort((a, b) => {
  return (a.date < b.date) ? -1 : ((a.date > b.date) ? 1 : 0)
});
console.log(sorted)

We have the arr array that we want to sort by the date value.

Then we call arr.sort with a callback that compares the strings to compare the date strings directly by their values lexigraphically.

If a.date is less than b.date we return keep their order.

Otherwise, if a.date is bigger than b.date, we return 1 to reverse their order.

If they’re the same, we return 0.

Therefore, sorted, is:

[
  {
    "name": "oldest",
    "date": "2001-01-17T08:00:00Z"
  },
  {
    "name": "old",
    "date": "2009-11-25T08:00:00Z"
  },
  {
    "name": "newest",
    "date": "2011-01-28T08:00:00Z"
  }
]

Conclusion

To sort a JavaScript array by ISO 8601 date, we can use the JavaScript array’s sort method.